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 :

Page de login avec message et validator


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Par défaut Page de login avec message et validator
    Bonjour , j'ai une page pour se connecter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <rich:panel>
    		<f:facet name="header">		
    	<h:outputText value="Identification" />
    			</f:facet>
    		<h:panelGrid columns="3">
    <h:outputLabel value="#{msg.LOGIN }" styleClass="Output"></h:outputLabel>
    		<h:inputText value="#{loginBean.user.userName }" />
    		<h:outputLabel value="#{msg.PASSWORD }" styleClass="Output"></h:outputLabel>
    	<h:inputSecret value="#{loginBean.user.userCode}" />
    	<h:commandButton actionListener="#{loginBean.connect}" id="validate" />
    		<h:message for="validate"></h:message>
    	</h:panelGrid>
    </rich:panel>
    et ensuite dans mon loginBean.java j'ai ca:

    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
     
    public void connect(ActionEvent evt) {
    		UIComponent toValidate = null ;
    		if ((user.getUserName().equals(null))
    				&& (user.getUserCode().equals(null))
    				|| (user.getUserName().equals(""))
    				&& (user.getUserCode().equals(""))) {
    			FacesContext context = FacesContext.getCurrentInstance();
    			FacesMessage message = new FacesMessage();
    			message.setDetail("Veuillez saisir le login ou l'adresse mail");
    			message.setSeverity(FacesMessage.SEVERITY_ERROR);
     
    			context.addMessage(toValidate.getClientId(context), message);
     
    		}
    		// redirection si tout va bien
    	}
    Sauf que je n'arrive pas a faire marcher tout ca , ni a afficher le petit message en rouge a coté des champs, si quelqu'un peut m'aider.

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Par défaut
    Qu'est ce qui ne fonctionne pas exactement ?
    L'affichage est correct, as tu des erreurs ?

  3. #3
    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
    Bonjour,

    Plusieurs choses :

    Utilise l'action plutôt que l'actionListener, sur ton bouton validate.
    Si tout se passe bien, ton action va retourner une String représentant l'ID de la page d'accueil à afficher (dans les navigation rules), sinon un String vide (ou null) pour rester sur la page de login.

    Tu n'as pas de message d'erreur parce que ton <h:message> pointe sur le bouton. Or il doit pointer sur l'un des inputs, et n'affichera que les erreurs liés directement à celui-ci.
    Eventuellement, tu peux mettre un <h:messages/> pour avoir tous les messages d'erreur...
    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

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Par défaut
    j'ai utiliser action sur mon bouton validate, et pour la redirection ca j'ai compris comment faire. ce que je n'arrive toujours pas à afficher ce sont les messages rouges près des champs de login et de mot de passe.

    Merci

  5. #5
    Expert confirmé
    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
    Par défaut
    Il te faut un <h:messages> dans ta page car le messages que tu ajoutes par programmation est global.

    Tu sais que tu peux valider automatiquement et en utilisant JSF ? en ajoutant l'attribut required="true" à tes inputText ?

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 186
    Par défaut
    j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: #{loginBean.connect}: java.lang.NullPointerException
    Tu sais que tu peux valider automatiquement et en utilisant JSF ? en ajoutant l'attribut required="true" à tes inputText ?

    il sert a quoi cet attribut??

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Par défaut
    L'attribut required sert à indiquer si la variable doit être obligatoirement remplie : il est à false par défaut, le mettre à true signifie donc que l'on indique que ce champ doit être rempli pour valider le formulaire.

  8. #8
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par ghnawfal Voir le message
    j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.ServletException: #{loginBean.connect}: java.lang.NullPointerException
    Tu as du oublié d'instancier le champ user ... sinon, tu peux localiser toi même la source de cette erreur dans ton code suffit de déboger et/ou de tracer.

    Citation Envoyé par ghnawfal Voir le message
    il sert a quoi cet attribut??
    Justement, il sert à :
    valider automatiquement en utilisant JSF
    Automatiquement veut dire que tu n'as plus à faire les tests login!=null etc. Ce sera fait par JSF automatiquement ... et un mesage d'erreur serait automatiquement ajouté si la condition n'est pas respectée.

    http://java.developpez.com/faq/jsf/?...NTS_validators
    + n'importe quel cours JSF parle de ça.

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

Discussions similaires

  1. Page de login avec html ajax et php
    Par forgottenspam dans le forum jQuery
    Réponses: 4
    Dernier message: 15/10/2014, 15h21
  2. page de login avec LogOnUserControl.ascx
    Par cragoroth dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 27/04/2012, 16h39
  3. Réponses: 7
    Dernier message: 16/12/2010, 17h05
  4. Struts 2 - problème avec les messages de validation
    Par Aemaeth13 dans le forum Struts 2
    Réponses: 4
    Dernier message: 17/08/2009, 16h41
  5. Authentification avec JAAS et Page de login en page d'acceuil
    Par Slash696 dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 02/03/2007, 16h13

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