IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

[debutant] formulaire qui marche pas


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 45
    Points : 20
    Points
    20
    Par défaut [debutant] formulaire qui marche pas
    Bonjour,

    excusez moi de vous embeter, mais j'ai un petit souci et je ne trouve pas ma reponse ...

    alors voila, j'ai une appli JSF avec un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:form id="illFront">
        .....
        <h:commandButton type="submit" value="Generate Report" action="illusFront" />
    </h:form>
    j'ai rajouter dans mon fichier web xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <servlet>
        <servlet-name>IllusPdfMediator</servlet-name>
        <display-name>IllusPdfMediator</display-name>
        <servlet-class>monPackage.IllusPdfMediator</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>IllusPdfMediator</servlet-name>
        <url-pattern>/illusFront</url-pattern>
    </servlet-mapping>
    j'ai redefinis dans ma classe monPackage.IllusPdfMediator

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    quand je teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/illusFront
    quand je clique "entrée" ou "go" du navigateur ca marche pas ....
    quand j'actualise la page avec l'url, j'ai bien mon println !!!
    quand je clique sur mon bouton il ne se passe rien ...

    j'ai oublié quelque chose pour que ca marche onclick sur mon bouton ???

    Merci pour toute aide
    @+
    pim

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    tu utilise JSF comme des jsp... c'est pas vraiment la bonne méthode .

    Il faut que tu déclare ton bean dans ton faces-config.xml.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<managed-bean>
    		<managed-bean-name>IllusPdfMediator</managed-bean-name>
    		<managed-bean-class>monPackage.IllusPdfMediator</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    	</managed-bean>
    Ensuite dans ta classe IllusPdfMediator, tu fais ta fonction illusFront.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void illusFront(){
     
    }
    Et dans ta page JSF:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:form id="illFront">
        .....
        <h:commandButton type="submit" value="Generate Report" action="#{IllusPdfMediator.illusFront}" />
    </h:form>
    Je te conseil de lire un petit tutorial sur JSF pour apprendre à l'utiliser...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    et j'enlève tout le bordel du web.xml ??

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Juste pour faciliter la réponse des gens et puisque c'est moi qui t'ai guidée un peu, je vais préciser quelques points.

    1- Ce n'est pas une classe, ni un bean qui doit être appelé mais une servlet. Parceque le bean n'aura pas accés à la HttpServletResponse (enfin je pense) pour envoyer le fichier PDF dans le navigateur via un flux binaire.

    2 - Donc lors du post du formulaire, ce dernier doit appeler l'action qui correspond à l'URL de la servlet, à savoir : /illusFront (définie dans le web.xml).

    A+

  5. #5
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par pimousse_cerise
    et j'enlève tout le bordel du web.xml ??
    Non tu le laisse, je pense que ça réponse n'est pas appropriée...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    ah ok .... merci thibaut


    d'autres idées ?

  7. #7
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Il faut ajouter des lignes dans ton fichier faces-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <navigation-rule>
      <from-view-id><ta jsp qui post><from-view-id>
      <navigation-case>
        <from-outcome>illusFront</from-outcome>
        <to-view-id><ta servlet></to-view-id>
      </navigation-case>
    </navigation-rule>
    Ou quelquechose comme ça. Si ça ne marche pas tu peux toujours utiliser la bonne vieille balise HTML FORM

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    quand tu dis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <from-outcome>illusFront</from-outcome>
    c'est deja le nom de ma servlet ... non ???!!!
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <to-view-id><ta servlet></to-view-id>
    c'est le nom de la classe ??

  9. #9
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Non alors, je ne suis pas certain de la réponse mais ça doit ressembler à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <navigation-rule>
      <from-view-id><ta jsp qui post><from-view-id>
      <navigation-case>
        <from-outcome>view</from-outcome>
        <to-view-id>/illusFront</to-view-id>
      </navigation-case>
    </navigation-rule>
    Et dans ta JSP:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:form id="illFront">
        .....
        <h:commandButton type="submit" value="Generate Report" action="view" />
    </h:form>
    Dans ton web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <servlet>
      <servlet-name>IllusPdfMediator</servlet-name>
      <display-name>IllusPdfMediator</display-name>
      <servlet-class>monPackage.IllusPdfMediator</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>IllusPdfMediator</servlet-name>
      <url-pattern>/illusFront</url-pattern>
    </servlet-mapping>
    Le view c'est juste pour qu'il n'y ai pas de confusion entre le nom de la servlet et le lien défini dans JSF.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    il recherche illusFront.jsp ....
    alors forcement il le trouve pas !!!

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 511
    Points : 514
    Points
    514
    Par défaut
    1- Ce n'est pas une classe, ni un bean qui doit être appelé mais une servlet. Parceque le bean n'aura pas accés à la HttpServletResponse (enfin je pense) pour envoyer le fichier PDF dans le navigateur via un flux binaire.
    tu peux y avoir accés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    HttpServletResponse response = (HttpServletResponse)FacesContext
    			     .getCurrentInstance().getExternalContext().getResponse();

Discussions similaires

  1. J'ai un traitement de formulaire qui marche pas
    Par japhettchabao dans le forum Langage
    Réponses: 7
    Dernier message: 18/11/2014, 16h09
  2. [PHP 5.0] Formulaire de contact qui marche pas
    Par Adweuz dans le forum Langage
    Réponses: 12
    Dernier message: 21/05/2011, 13h48
  3. [Debutant] self.puts qui marche pas
    Par DavidDeTroyes dans le forum Ruby
    Réponses: 5
    Dernier message: 13/12/2006, 11h32
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo