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 validator empêche l'action de commandButton


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut Problème validator empêche l'action de commandButton
    Bonsoir les developperz,

    Mon formulaire <h:form/> possède un bouton <h:commandButton/> avec une action vers une page register2.

    Le problème se situe dans le faite que quand je clique sur ce bouton le navigateur ne passe pas à l'action (register2), j'ai l'impression qu'il est bloqué dans la validation (pour chaque champs <h:inputText/> j'ai mis un validator déclaré dans un managed bean).

    Je me demande comment valider cette étape de validation afin de permettre la navigation?

    P.S: J'ai créer un xml contenant mon navigation-rules et j'ai declarer mon managed bean dedans mais toujours pas le résultat attendu!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:commandButton 
                                        id="submit" 
                                        value="Start here!" 
                                        action="register2"/>
    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
    <h:inputText 
                                        required="true"
                                        requiredMessage="Please fill out this field."
                                        size="25"
                                        id="firstname" 
                                        style="color: lightgray;"
                                        value="#{register.firstname}"                                    
                                        autocomplete="on"
                                        validator="#{register.validateName}">                                    
                                    </h:inputText>
                                    <h:message
                                        showSummary="true"
                                        showDetail="false"
                                        fatalStyle="color:red; font-size: small; margin-left: 5px; text-transform: uppercase;"
                                        errorStyle="color:red; font-size: small; margin-left: 5px;"
                                        warnStyle="color:orange; font-size: small; margin-left: 5px;"
                                        infoStyle="color:green; font-size: small; margin-left: 5px;"
                                        tooltip="true"
                                        for="firstname"
                                        />
    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
    <faces-config version="2.0"
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
        <navigation-rule>
            <from-view-id>/register.xhtml</from-view-id>
            <navigation-case>
                <from-outcome>case1</from-outcome>
                <to-view-id>/register2.xhtml</to-view-id>
            </navigation-case>
            <managed-bean>
                <managed-bean-name>register</managed-bean-name>
                <managed-bean-class>server.register</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
            </managed-bean>
        </navigation-rule>
    </faces-config>
    Merci d'avance pour votre aide!

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Personne n'est là

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:commandButton 
                                        id="submit" 
                                        value="Start here!" 
                                        action="register2"/>
    A mon avis ce code doit te peter au nez. qu'attends tu de ton code en faisant ca? la bonne syntaxe c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="#{tonBean.tonAction}"

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Merci pour ta réponse DevServlet,

    Citation Envoyé par DevServlet Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <h:commandButton 
                                        id="submit" 
                                        value="Start here!" 
                                        action="register2"/>
    A mon avis ce code doit te peter au nez. qu'attends tu de ton code en faisant ca? la bonne syntaxe c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    action="#{tonBean.tonAction}"
    J'ai une action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String nextPage() {
    return "register2";
    }
    déclarée dans mon bean register
    et j'ai changer l'action à #{register.nextPage} mais toujours le même résultat

    action="register2" fonctionne belle et bien avec la navigation explicite: sans la déclaration des navigations rules dans le faces-config et elle pointe parfaitement après l'application du submit() (clique sur le commandButton) vers la page register2.xhtml! Le problème apparait que quand j'applique des validator et c'est là que le miracle disparait et la vue ne passe pas à la page suivante

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Quand je specifie l'attribut immediate="true" pour le commandButton le passage à la page suivante se fait immediatement mais je récupère aucune valeur ce qui signifie pour moi que le traitement n'a pas eu lieu!

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Fais nous voir ton managedBean server.register, je vais regarder de plus près ton soucis. En passant les classes en Java commencent par une lettre majuscule, c'est important pour une bonne lecture de ton code.quand t'auras du temps fais un tour sur les best practices ici

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Fais nous voir ton managedBean server.register, je vais regarder de plus près ton soucis. En passant les classes en Java commencent par une lettre majuscule, c'est important pour une bonne lecture de ton code.quand t'auras du temps fais un tour sur les best practices ici
    Best practice Merci DevServlet!
    Bon je vais poster mon MBean le soir... Merci

  8. #8
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Par défaut
    J'ai trouvé la solution:

    Dans le cas où la validation est bonne donc message de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msg.setSeverity(FacesMessage.SEVERITY_INFO);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msg.setSeverity(FacesMessage.SEVERITY_WARN);
    Je ne dois pas faire une nouvelle exception! du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    throw new ValidatorException(msg);
    car du coup ça sera considérer tout simplement comme une exception est finalement la validation va échouer!

    D'un coté je sais pas dire à l'utilisateur que c'est bon ou c'est pas très sécurisé comme mot de passe mais quand même c'est des règles à suivre. Le message je vais peut être le passer comme un nouveau paramètre dans ma requête afin de l'afficher comme information ou avertissement dans la page suivante

  9. #9
    Membre confirmé
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Par défaut
    Citation Envoyé par undasight Voir le message
    D'un coté je sais pas dire à l'utilisateur que c'est bon ou c'est pas très sécurisé comme mot de passe mais quand même c'est des règles à suivre. Le message je vais peut être le passer comme un nouveau paramètre dans ma requête afin de l'afficher comme information ou avertissement dans la page suivante
    JSF sait gerer les messages d'information , warning....
    il faut faire un truc de ce genrre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    FacesMessage message = new FacesMessage (mettre tes parametres);
    FacesContext.getCurrentInstance().addMessage(null, message);
    et tu peux recuperer ton message dans la page jsp avec la tag adequate..

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/10/2008, 18h43
  2. Réponses: 4
    Dernier message: 25/09/2006, 14h57
  3. [XSD] Problème Validation XML XSD
    Par scelines dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 04/05/2006, 17h54
  4. [W3C] problème validation W3C d'un site
    Par nicolas77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/04/2006, 14h04
  5. Réponses: 8
    Dernier message: 05/02/2006, 10h39

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