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 :

[richfaces][tomahawk]Erreur de validation


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Par défaut [richfaces][tomahawk]Erreur de validation
    BOnjour,

    J'ai un formulaire que je n'arrive pas à valider.
    aucun validateur tomahawk ne fonctionne correctement (ni <t:validateEmail ../> ni <t:validateEqual../>)
    En plus, j'ai écrit un validateur personnalisé pour tester si la valeur du login existe dans la base et à chaque fois il me sort une erreur.

    ci joint le code source ainsi que les erreurs:

    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
    45
    46
    47
    48
    <h:outputLabel for="emailContact" value="#{labelText.emailContact}"/>
                    <h:inputText id="emailContact" value="#{organismeForm.emailContact}" required="true">
                    	<t:validateEmail detailMessage="#{labelText.erreurEmail}"/>
                    </h:inputText>
                    <rich:message for="emailContact">
                        <f:facet name="passedMarker">
                            <h:graphicImage  value="/images/passed.gif" /> 
                        </f:facet>
                        <f:facet name="errorMarker">
                            <h:graphicImage value="/images/error.gif" />   
                        </f:facet>
                    </rich:message>
     
    <h:outputLabel for="login" value="#{labelText.login}"/>
                    <h:inputText id="login" value="#{organismeForm.login}" required="true" validator="#{organismeForm.loginCheck}"/>
                    <rich:message for="login">
                        <f:facet name="passedMarker">
                            <h:graphicImage  value="/images/passed.gif" /> 
                        </f:facet>
                        <f:facet name="errorMarker">
                            <h:graphicImage value="/images/error.gif" />   
                        </f:facet>
                    </rich:message>
     
                    <h:outputLabel for="passwd" value="#{labelText.passwd}"/>
                    <h:inputText id="passwd" value="#{organismeForm.passwd}" required="true"/>
                    <rich:message for="passwd">
                        <f:facet name="passedMarker">
                            <h:graphicImage  value="/images/passed.gif" /> 
                        </f:facet>
                        <f:facet name="errorMarker">
                            <h:graphicImage value="/images/error.gif" />   
                        </f:facet>
                    </rich:message>
     
                    <h:outputLabel for="passwdConfirm" value="#{labelText.passwdConfirm}"/>
                    <h:inputText id="passwdConfirm" value="#{organismeForm.passwdConfirm}" required="true">
                    <t:validateEqual for="passwd"
                        message="#{labelText.equalError}"/>
                    </h:inputText>
                    <rich:message for="passwdConfirm">
                        <f:facet name="passedMarker">
                            <h:graphicImage  value="/images/passed.gif" /> 
                        </f:facet>
                        <f:facet name="errorMarker">
                            <h:graphicImage value="/images/error.gif" />   
                        </f:facet>
                    </rich:message>
    Lors de la validation du formulaire avec une valeur "azerty" au niveau du champ mail, richfaces valide le champ. Sans richfaces, la validation est correcte.

    Concernant, la validation du login, j'ai l'erreur suivante:
    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
    - Stack Trace
     
    javax.faces.FacesException: Exception while validating component with path : {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: /org_inscr.jsp][Class: org.richfaces.component.html.HtmlPanel,Id: j_id_jsp_57315880_1][Class: javax.faces.component.html.HtmlForm,Id: form1][Class: javax.faces.component.html.HtmlPanelGrid,Id: j_id_jsp_57315880_4][Class: javax.faces.component.html.HtmlInputText,Id: login]}
    	at javax.faces.component.UIInput.validate(UIInput.java:346)
    	at javax.faces.component.UIInput.processValidators(UIInput.java:144)
    	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:658)
    	at javax.faces.component.UIForm.processValidators(UIForm.java:74)
    	at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:658)
    	at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:434)
    	at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:234)
    	at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:450)
    	at org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    	at org.ajax4jsf.Filter.doFilter(Filter.java:175)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Unknown Source)
    Caused by: org.apache.jasper.el.JspMethodNotFoundException: /org_inscr.jsp(164,16) '#{organismeForm.loginCheck}' Method not found: org.proforma.bean.OrganismeForm@327473.loginCheck(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
    	at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:71)
    	at javax.faces.validator.MethodExpressionValidator.validate(MethodExpressionValidator.java:54)
    	at javax.faces.component._ComponentUtils.callValidators(_ComponentUtils.java:156)
    	at javax.faces.component.UIInput.validateValue(UIInput.java:288)
    	at javax.faces.component.UIInput.validate(UIInput.java:332)
    	... 31 more
    Le code du bean:
    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
    package org.proforma.bean;
     
    import javax.faces.context.FacesContext;
    import javax.faces.application.FacesMessage;
    import javax.faces.validator.ValidatorException;
    import javax.faces.component.UIComponent;
    import java.sql.*;
     
    public class OrganismeForm {
    .....
     
     public void loginCheck(FacesContext context, UIComponent component, Object value) throws ValidatorException
        {
        	System.out.println("Test LoginCheck()");
        	DBHandler dbHandler = new DBHandler();
        	dbHandler.setQueryString("SELECT login FROM organisme WHERE login = ?");
        	ResultSet rs = dbHandler.lookup(value.toString());
        	 try {
        	  if(rs.next())
        	  {
        		FacesMessage message = org.proforma.util.Messages.getMessage("org.proforma.ressource.bundle", "loginExist", null);
    			message.setSeverity(FacesMessage.SEVERITY_ERROR);
    			throw new ValidatorException(message);
        	  }
        	 } 
        	 catch (SQLException sqle) {
    		    sqle.printStackTrace();
        	 }
     
        }  
    }
    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Ton problème vient du fait que tu donnes une action à l'attribut validator, alors qu'il faut donner le nom d'un validator.
    Il y a deux méthodes pour faire et utiliser ton validator personnalisé dans la FAQ !
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Par défaut
    Citation Envoyé par romaintaz Voir le message
    Ton problème vient du fait que tu donnes une action à l'attribut validator, alors qu'il faut donner le nom d'un validator.
    Il y a deux méthodes pour faire et utiliser ton validator personnalisé dans la FAQ !
    Tout d'abord, je vous remercie pour votre réponse.
    Sincèrement, je ne vois pas ou est l'erreur. J'ai suivi à la lettre ce qui était mentionné au niveau de cet article. En plus, j'utilise le livre core jsf et j'ai trouvé le même exemple.

    Pouvez vous me dire qu'est ce que je dois changer au niveau de mon code. En plus, pourquoi les autres validateur ne marche pas correctement: comme la validation du mail.

    Merci pour votre aide

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Citation Envoyé par villeneuvejsp Voir le message
    Sincèrement, je ne vois pas ou est l'erreur.
    Ma première phrase ne te met pas sur la bonne piste ?

    Citation Envoyé par romaintaz Voir le message
    Ton problème vient du fait que tu donnes une action à l'attribut validator, alors qu'il faut donner le nom d'un validator.
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Par défaut
    Sincèrement! non.

    J'ai suivi la deuxième méthode. créer une méthode au niveau du bean et l'appeler au niveau du validator. c'est ce que j'ai fait, non?

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Par défaut
    Tu peux toujours tester la 1e méthode : tu crées une classe qui implémente l'interface Validator.
    Tu déclares ensuite ton validator dans le faces-config.xml en lui donnant un ID. C'est cet ID que tu donnes à l'attribut validatorId du tag f:validator:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <h:inputText value="#{monBean.monText}">
        <f:validator validatorId="idDeMonValidator" />
    </h:inputText>
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

Discussions similaires

  1. [W3C] Erreurs de validation incompréhensibles
    Par brotelle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 21
    Dernier message: 12/05/2006, 12h03
  2. [W3C] erreur de validation W3C HTML 4.01 Transitional
    Par durand2504 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/03/2006, 10h47
  3. [debutant] erreur de validation DTD/schema
    Par loic_86 dans le forum Valider
    Réponses: 1
    Dernier message: 13/01/2006, 22h04
  4. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15

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