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 :

basique formulaire JSF néanmoins une exception


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut basique formulaire JSF néanmoins une exception
    Bonjour,

    Débutant avec le basique formulaire ci bas :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <ui:define name="body">
          <h:form id="helloForm">
            <h:inputText   value="#{Dictionary.key}"/>
            <h:inputText   value="#{Person.Name}"/>      
            <h:inputSecret value="#{Person.Pwd}"/>
            <h:commandButton  type="submit" action="success" value="ok"/>                
          </h:form>
        </ui:define>
      </ui:composition>

    j'arrive à produire l'exception suivante :
    Exception while calling encodeEnd on component : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /index.xhtml][Class: javax.faces.component.html.HtmlForm,Id: helloForm][Class: javax.faces.component.html.HtmlInputText,Id: j_id6]}
    Caused by:
    cause
    Si je supprime la ligne rouge (deuxième inputtext) l'exception est levée ?
    Avez vous une explication ?

    Par avance merci.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText value="#{Person.Name}"/>
    le champs est appelé peu être name et doit disposer des getter/setter.

    donc dans la page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText value="#{Person.name}"/>

  3. #3
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    Merci pour la réponse.

    J'utilise le bean ci bas qui me semble conforme avec description du composant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    // Description of managed bean "Person"
    public class Person {
      // Attributes
      private String  Name;
      private String  Pwd;
     
      // Constructor
      public Person() {   
        Name = "toto";
        Pwd  = "titi";  
      }
     
      // Methods
      public String login() {
        if ((Name == null) || (Name.length() == 0))  return "failureLogin";
        if ((Pwd  == null) || (Pwd.length()  == 0))  return "failureLogin"; 
        else                                         return "successLogin";    
      }
     
      // Getters and Setters
      public void setName(String name) {
        this.Name = name;
      }
     
      public void setPwd(String pwd) {
        this.Pwd = pwd;
      }
     
      public String getName(String name) {
        return this.Name;
      }
     
      public String getPwd(String pwd) {
        return this.Pwd;
      }  
    }

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    et la définition du bean dans le faces-config ?
    et n'oublie pas de mettre le code entre balises CODE!

    faut savoir que la norme de nommage des bean: les champs commencent toujours par une minuscule.

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 20
    Par défaut
    La déclaration standard du bean est minuscule c'est contraire aux bonnes règles de nommages java il me semble non ? Une classe un attribut ça débute de préférence avec une majuscule non ?

    Sinon la declaration du bean est la suivante, également conforme il me semble :

    <managed-bean>
    <managed-bean-name>Person</managed-bean-name>
    <managed-bean-class>org.sz1708.myfacesExample1.Person</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut


    modifie ton bean;

    change Name en name et Pwd en pwd

    et aussi Person en person.
    c'est juste des règles de java beans, mais, peut être, peut être les facelets obligent à les respecter..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. jointure en jpa dans une formulaire jsf
    Par tifawa dans le forum JSF
    Réponses: 10
    Dernier message: 21/06/2012, 17h22
  2. récupérer la valeur de inputText d'une formulaire JSF
    Par clubist dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 22/03/2010, 22h25
  3. Réponses: 1
    Dernier message: 18/12/2009, 20h01
  4. Réponses: 3
    Dernier message: 01/11/2002, 14h30
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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