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 :

[JSF & RichFaces] problème binding


Sujet :

JSF Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut [JSF & RichFaces] problème binding
    Bonjour,

    j'ai un problème en essayant de binder un composant sur une variable d'un bean.

    Ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <a4j:region renderRegionOnly="true">
    <h:inputText id="email" binding="#{accountRegister.fieldEmail}"  value="#{account.email}" styleClass="text" required="true" tabindex="2">
    <a4j:support event="onkeyup" action="#{accountRegister.checkEmailListener}" reRender="emailMsg" />
    </h:inputText>
    <rich:messages id="emailMsg" for="email" />  
    </a4j:region>
    Mon bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private UIInput fieldEmail;
     
    public UIInput getFieldEmail()
        {
        	return fieldEmail;
        }
     
    	public void setFieldEmail(UIInput fieldEmail)
        {
        	this.fieldEmail = fieldEmail;
        }
    Cependant j'ai cette erreur :
    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
    37
    38
    39
    40
    41
    42
    43
    44
     
    Exception during request processing:
    Caused by javax.servlet.ServletException with message: "/test.xhtml @100,167 binding="#{accountRegister.fieldEmail}": Error writing 'fieldEmail' on type org.javassist.tmp.java.lang.Object_$$_javassist_0"
     
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
    org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:44)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
    org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
    org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
    org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
    org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
    org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
    org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
    org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
    java.lang.Thread.run(Thread.java:595)

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Svp je veux voir l'URI attribuer au prefix h que tu utilises (h:ouputText..)

    et aussi le nom complet(le nom du package) du type UIInput que tu utilises dans votre managed bean

    Merci.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:h="http://java.sun.com/jsf/html"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import javax.faces.component.UIInput;

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Que fait javassist dans ton projet ? tu utilises Seam ou Hibernate ou ... en plus de JSF ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    Oui j'utilise seam.

  6. #6
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Dommage ... je connais po Seam.
    Mais je ne comprends pas pourquoi Seam fait un proxy pour ton managed bean ...

    Sinon, pourquoi utilises tu le binding du composant ?

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Stp essayes de remplacer le type UIInput par Object juste pour tester

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 28
    Points : 29
    Points
    29
    Par défaut
    même erreur en déclarant en tant qu'Objet.

    Je fais de la validation de formulaire en ajax, et j'aimerais ajouter un message spécifique à un composant.

    (en référence à ce post : http://www.developpez.net/forums/sho...d.php?t=456740)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Alors moi j'utilise Seam et pour ma validation qui fonctionne voici ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <s:decorate id="emailDecorate" template="layout/edit.xhtml">
       <h:outputText value="#{messages['view.label.email']}" />
       <h:inputText  id="email" required="true" value="#{utilisateur.email}" size="40">
           <a4j:support event="onblur" reRender="emailDecorate"/> 
       </h:inputText>	
    </s:decorate>
    dans mon bean session Utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	@Email
    	@Column(name = "EMAIL", unique = false, nullable = false, insertable = true, updatable = true, length = 100)
    	public String getEmail() {
    		return this.email;
    	}
     
    	public void setEmail(String email) {
    		this.email = email;
    	}

    En espérant que çà pourra vous aider ....

    PS : J'utilise Seam 2.0

    Bon courage .....

  10. #10
    Membre régulier Avatar de KneXtasY
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 121
    Points : 109
    Points
    109
    Par défaut
    Si ton bean (accountRegister) est un EJB Session (vu que tu utilises Seam), il faut pour pouvoir utiliser accountRegister.fieldEmail que l'interface que ton bean implémente posséde les méthodes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String getFieldEmail();
    void setFieldEmail();
    Mais je pense que suivre l'exemple de anicaise est plus simple .

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/04/2011, 16h15
  2. Réponses: 1
    Dernier message: 27/11/2009, 15h32
  3. Réponses: 3
    Dernier message: 20/11/2009, 10h28
  4. [Débutan] problème avec jsf et richfaces !
    Par scaryfan dans le forum JSF
    Réponses: 6
    Dernier message: 20/09/2009, 19h52
  5. JSF + ADF] tutorial java + bindings
    Par bertlef dans le forum JSF
    Réponses: 1
    Dernier message: 11/09/2006, 09h02

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