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 :

Problème avec rich:ajaxValidator


Sujet :

JSF Java

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut Problème avec rich:ajaxValidator
    bonjour ,
    je travail avec Netbeans 6.5 et visual web jsf
    j'ai voulus ajouter des contrôles sur les champs de mon formulaire et voila le code jsf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:inputText id="name" required="true" >
                                <f:validateLength maximum="10" minimum="3"/>
                                <rich:ajaxValidator event="onblur" summary="Le nom saisie n'est pas valide"/>
                            </h:inputText>
    le problème c que les messages d'erreur ne seront affiché qu'après l'actualisation de la page alors que le code doit imposer la vérification quand le champ perd le focus.
    sachant que je n'ai pas changer le fichier web.xml / faces-config.xml
    es que qlq'1 a une proposition
    et 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
    Points : 5 059
    Points
    5 059
    Par défaut
    le même code fonctionne bien sur la demo de richfaces,
    tu utilises quelle version de RF et quelle version JSF.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    j'utilise la version JSF 1.2
    avec la version de richFaces 3.2.2.SR1
    Je n'ai pas encore trouvé la solution

  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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par wajdopovitch Voir le message
    j'utilise la version JSF 1.2
    avec la version de richFaces 3.2.2.SR1
    Je n'ai pas encore trouvé la solution
    la version SR1 de richfaces c'est la version avant la release, elle contient pas mal de bugs, il faut prendre soit la 3.2.2.GA la version stable ou la dernière version la 3.3.0.GA.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    j'ai télécharger la nouvelle version 3.3.0 GA puis j'ai crée un nouveau projet :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <jsp:root version="2.1" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page"
        xmlns:rich="http://richfaces.org/rich" xmlns:webuijsf="http://www.sun.com/webui/webuijsf">
        <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
        <f:view>
            <webuijsf:page id="page1">
                <webuijsf:html id="html1">
                    <webuijsf:head id="head1">
                        <webuijsf:link id="link1" url="/resources/stylesheet.css"/>
                    </webuijsf:head>
                    <webuijsf:body id="body1" style="-rave-layout: grid">
                        <webuijsf:form id="form1">
                            <h:inputText id="name" required="true"  value="#{Page1.name}">
                                <f:validateLength maximum="10" minimum="3"/>
                                <rich:ajaxValidator event="onblur"/>
                            </h:inputText>
                            <rich:message for="name" />
                            <h:inputText id="textField2" />
                            <webuijsf:label id="label1"  text="Nom: "/>
                            <webuijsf:label id="label2"  text="Age : "/>
                            <webuijsf:button id="button1" />
                        </webuijsf:form>
                    </webuijsf:body>
                </webuijsf:html>
            </webuijsf:page>
        </f:view>
    </jsp:root>
    Le même problème rencontré

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    je n'ai pas pu ajouter les tags <ui> (xmlns:ui="http://java.sun.com/jsf/facelets")
    comme dans la démo (http://livedemo.exadel.com/richfaces...ator&tab=usage) je ne sais pas si c ca le problème, aider moi svp car j'ai passer bcp de temp sans résultat
    sashant que je n'ai pas modifier les fichiers: faces-config.xml et web.xml

  7. #7
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par wajdopovitch Voir le message
    je n'ai pas pu ajouter les tags <ui> (xmlns:ui="http://java.sun.com/jsf/facelets")
    comme dans la démo (http://livedemo.exadel.com/richfaces...ator&tab=usage) je ne sais pas si c ca le problème, aider moi svp car j'ai passer bcp de temp sans résultat
    sashant que je n'ai pas modifier les fichiers: faces-config.xml et web.xml
    Facelets ce n'est pas obligatoire,
    peut etre le problème vient des webuijsf que tu utilise, essaye de faire uen page simple avec que des tags JSF pour tester,
    pour utiliser ajaxValidator il faut juste ajouter les librairies d'hibernate validator.

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    voila j'ai créer un nouveau projet JSF sans implémenter Visual WebJSF

    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
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@taglib prefix="rich" uri="http://richfaces.org/rich" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Validation</title>
        </head>
        <body>
            <h:form>
            <h1><h:outputText value="Validation" /></h1> <br> <br>
                    <h:inputText id="name" required="true" >
                            <f:validateLength maximum="10" minimum="3"/>
                            <rich:ajaxValidator event="onblur"/>
                         </h:inputText>  <br>
                    <rich:message for="name" />      <br>
                   <h:inputText value="xf" /> <br>
                   <h:commandButton  value="valider"/>
              </h:form>
     </body>
    </html>
    </f:view>
    Le message d'erreur ne s'affiche pas
    que lorsque je clique sur le bouton (après l'actualisation de la page)
    de même si je veut enlever le message je dois introduire une chaine cohérente et je clique sur le bouton

  9. #9
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par wajdopovitch Voir le message
    voila j'ai créer un nouveau projet JSF sans implémenter Visual WebJSF

    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
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <%@taglib prefix="rich" uri="http://richfaces.org/rich" %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Validation</title>
        </head>
        <body>
            <h:form>
            <h1><h:outputText value="Validation" /></h1> <br> <br>
                    <h:inputText id="name" required="true" >
                            <f:validateLength maximum="10" minimum="3"/>
                            <rich:ajaxValidator event="onblur"/>
                         </h:inputText>  <br>
                    <rich:message for="name" />      <br>
                   <h:inputText value="xf" /> <br>
                   <h:commandButton  value="valider"/>
              </h:form>
     </body>
    </html>
    </f:view>
    Le message d'erreur ne s'affiche pas
    que lorsque je clique sur le bouton (après l'actualisation de la page)
    de même si je veut enlever le message je dois introduire une chaine cohérente et je clique sur le bouton
    tu as testé sur IE et FF ??
    tu peux enlever les <br/> et hr et utiliser que des tags JSF..

  10. #10
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    je l'ai testé sur les deux navigateurs mais rien ne change
    le même problème
    le nouveau code :
    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
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Validation</title>
        </head>
        <body>
            <h:form>
                    <h:inputText id="name" required="true" >
                            <f:validateLength maximum="10" minimum="3"/>
                            <rich:ajaxValidator event="onblur"/>
                         </h:inputText>
                    <rich:message for="name" />     
                   <h:inputText value="xf" /> 
                   <h:commandButton  value="valider"/>
              </h:form>
     </body>
    </html>
    </f:view>

  11. #11
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par wajdopovitch Voir le message
    je l'ai testé sur les deux navigateurs mais rien ne change
    le même problème
    le nouveau code :
    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
    <f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Validation</title>
        </head>
        <body>
            <h:form>
                    <h:inputText id="name" required="true" >
                            <f:validateLength maximum="10" minimum="3"/>
                            <rich:ajaxValidator event="onblur"/>
                         </h:inputText>
                    <rich:message for="name" />     
                   <h:inputText value="xf" /> 
                   <h:commandButton  value="valider"/>
              </h:form>
     </body>
    </html>
    </f:view>
    bizard.. .. et lorsque tu essaye avec un autre événement ça passe??

    tu peux donner la liste des jars du WEB-INF/libs?

  12. #12
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    j'ai essayé avec l'évenement onchange mais le résultat est le même
    la liste des jar dans \WEB-INF\lib :
    antlr-2.7.6.jar
    -asm.jar
    -asm-attrs.jar
    -cglib-2.1.3.jar
    -commons-beanutils.jar
    -commons-collections-2.1.1.jar
    -commons-collections.jar
    -commons-digester.jar
    -commons-logging-1.1.jar
    -commons-logging.jar
    -dom4j-1.6.1.jar
    -ehcache-1.2.3.jar
    -hibernate3.jar
    -hibernate-annotations.jar
    -hibernate-commons-annotations.jar
    -hibernate-validator.jar

    -hibernate-entitymanager.jar
    -hibernate-tools.jar
    -javassist.jar
    -jdbc2_0-stdext.jar
    -jsf-api.jar jsf-impl.jar
    -jstl.jar jta.jar
    -richfaces-api-3.3.0.GA.jar
    -richfaces-impl-3.3.0.GA.jar
    -richfaces-ui-3.3.0.GA.jar

    -slf4j-api.jar standard.jar

  13. #13
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <h:inputText id="name" required="true" >
    il manque value c'est un attribut obligatoire.

  14. #14
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:inputText value=" " id="name" required="true" >
                            <f:validateLength maximum="10" minimum="3"/>
                            <rich:ajaxValidator  event="onchange"/>
                         </h:inputText>
                         <rich:message for="name"/>
    La même chose que firefox et internetexplorer

  15. #15
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Le fait que l'attribut value soit obligatoire ne signifie pas pour autant qu'il faille le remplir avec une valeur vide !
    Ton value doit pointer vers une propriété de ton bean qui stockera - côté serveur - la valeur saisie.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:inputText value="#{monBean.maValeur}" ...>
    Et dans le bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private String maValeur;
     
    public void setMaValeur(String newValeur) {
        this.maValeur = newValeur;
    }
     
    public String getMaValeur() {
        return this.maValeur;
    }

  16. #16
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:inputText value="#{val.maValeur}" id="name" required="true" >
                            <f:validateLength minimum="3" maximum="10" />
                            <rich:ajaxValidator  event="onblur"/>
                         </h:inputText>
    l'action n'a pas marché mais lorsque je clique sur le boutton j'obtient:
    HTTP Status 500 -
    ....
    exception
    javax.servlet.ServletException: Could not initialize class org.hibernate.validator.ClassValidator

    si je clique et le champ est vide j'obtient :
    Erreur de validation: Valeur requise

  17. #17
    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
    Points : 5 059
    Points
    5 059
    Par défaut
    tu es sur d'avoir toutes les classes d'hibernate validator, dans l'exception tu n'a pas un classNotFoundException..?

    sinon utilise les annotations au lieu de <f:validatexxx/>.

  18. #18
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    voila ce que j'ai obtenue comme erreur en utilisant les validators d'Hibernate :

    type Exception report
    message description
    The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    javax.servlet.ServletException: org/slf4j/impl/StaticLoggerBinder
    root cause
    java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
    root cause
    java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

    note The full stack traces of the exception and its root causes are available in the GlassFish/v3 logs

  19. #19
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    ici ma classe :
    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
    import org.hibernate.validator.Max;
    import org.hibernate.validator.Min;
    import org.hibernate.validator.NotNull;
     
     
    public class Value {
        @Max(10)
        @Min(3)
        @NotNull
    private String maValeur;
     
    public void setMaValeur(String newValeur) {
        this.maValeur = newValeur;
    }
     
    public String getMaValeur() {
        return this.maValeur;
    }
    }
    et le code JSF:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h:form>
                <h:inputText value="#{val.maValeur}" id="name" required="true" >
                           <rich:ajaxValidator   event="onblur"/>
                         </h:inputText>
                    <rich:message for="name" />
                    <h:inputText value="xf" id="hmpl" />
                   <h:commandButton  value="valider"/>
              </h:form>

  20. #20
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 146
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par Sniper37 Voir le message
    tu es sur d'avoir toutes les classes d'hibernate validator, dans l'exception tu n'a pas un classNotFoundException..?

    sinon utilise les annotations au lieu de <f:validatexxx/>.
    La validation est faite que l'hors de l'actualisation de la page
    je crois que le problème ne vient pas des validator mais c plutôt du processus d'écoute pour le composant inputText

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [RichFace] problème avec rich:calendar
    Par Nounoursonne dans le forum JSF
    Réponses: 3
    Dernier message: 18/12/2009, 14h45
  2. probléme avec <rich:comboBox et <a4j:support
    Par aymenroma dans le forum JSF
    Réponses: 5
    Dernier message: 10/06/2009, 15h02
  3. Problème avec rich:column "filterby"
    Par Giannelli26 dans le forum JSF
    Réponses: 8
    Dernier message: 14/04/2009, 13h00
  4. Problème avec Rich:Calendar
    Par iviath dans le forum JSF
    Réponses: 1
    Dernier message: 02/01/2009, 18h59
  5. Problème avec rich:tabPanel
    Par jdev23 dans le forum JSF
    Réponses: 1
    Dernier message: 09/09/2008, 03h55

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