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 :

managedBean et <h:message>


Sujet :

JSF Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 129
    Par défaut managedBean et <h:message>
    Bonjour à tous

    j'aurais besoin d'aide sur l'envoi de message d'erreur à une balise <h:message> à partir d'un managedbean

    Dans ma page jsp j'ai un champ login qui vérifie dans la BDD si le login est déjà existent ou pas. Pour cela j'utilise un balise <a4j:support action=#{managedBean.doLoginVerif}>

    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
     
     
      public String doLoginVerif(){
    System.out.println("cb");
            List<Customer> liste = csbl.findCustomers();
            for(int i = 0 ; i<liste.size();i++ ){
     
               if (    liste.get(i).getLogin().equals(login)){
     
                   FacesContext facesContext = FacesContext.getCurrentInstance();
     
                   facesContext.addMessage("formEnregistrement:error_login2", new FacesMessage(FacesMessage.SEVERITY_ERROR,"le login est déjà présent dans la base",""));
     
     
               }
     
     
    et voici une sortie console : 
     
     
     
            }
     
            return "";
        }

    et voici une sortie console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     
    sourceId=formEnregistrement:error_login2[severity=(ERROR 2), summary=(le login est déjà présent dans la base), detail=(le login est déjà présent dans la base)];|WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
    sourceId=formEnregistrement:error_login2[severity=(ERROR 2), summary=(le login est déjà présent dans la base), detail=(le login est déjà présent dans la base)]

    ma page jsp :


    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
     
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
     
    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
    <!-- RichFaces tag declaration-->
    <%@taglib prefix="a4j" uri="http://richfaces.org/a4j"%>
    <%@taglib prefix="rich" uri="http://richfaces.org/rich"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
     
    <%--
        This file is an entry point for JavaServer Faces application.
    --%>
    <f:view>
     
        <h:outputText value="Bienvenue sur SAGACITY"/>
     
        <h:panelGrid columns="2" id="panelPrincipal">
     
            <h:form id="formPrincipal">
     
     
     
     
                <h:panelGrid id="panelLogin">
     
                    <h:outputText value="Login"/>
                    <h:inputText   id="login" value="#{login.login}" required="true" requiredMessage="Ce champ est obligatoire">
                    </h:inputText>
                    <h:message id="error_login"for="login" showDetail="true" style="color: red"/>
     
                    <h:outputText value="Password"/>
                    <h:inputSecret id="pass"value="#{login.password}" required="true" requiredMessage="Ce champs est obligatoire">
                    </h:inputSecret>
                    <h:message id="error_pass"for="pass"  showDetail="true" style="color: red"/>
                    <h:commandButton value="Validez" action="#{login.doSignIn}"/>
     
                </h:panelGrid>
            </h:form>
     
     
     
            <h:form id="formEnregistrement">
                <h:outputText value="enregistrez vous"/>
     
                <h:panelGrid columns="1" id="panelEnregistrement">
     
                    <h:outputText value="Firstname"/>
                    <h:inputText id="firstname" value="#{login.firstname}" required="true" requiredMessage="Ce champs est obligatoire"/>
                    <h:message id="error_firstname"for="firstname"  showDetail="true" style="color: red"/>
     
                    <h:outputText value="Lastname"/>
                    <h:inputText id="lastname" value="#{login.lastname}" required="true" requiredMessage="Ce champs est obligatoire"/>
                    <h:message id="error_lastname"for="lastname"  showDetail="true" style="color: red"/>
     
                    <a4j:region id="ajax_region_1">
                        <h:panelGroup>
                            <h:outputText value="Login"/>
                            <h:inputText id="login2"value="#{login.login}" required="true" requiredMessage="Ce champs est obligatoire" >
                                <a4j:support  event="onkeyup" reRender="ajax_login2" action="#{login.doLoginVerif}"/>
                            </h:inputText>
                            <h:outputText id="ajax_login2" value="#{login.login}"/>
                            <h:message id="error_login2"for="login2"  showDetail="true" style="color: red"/>
                            <h:outputText id="test"/>
                        </h:panelGroup>
                    </a4j:region>
     
                    <a4j:region id="password1">
                        <h:outputText value="Password"/>
                        <h:inputSecret id="pass2" value="#{login.password}" required="true" requiredMessage="Ce champs est obligatoire">
                            <a4j:support event="onkeyup" action="#{login.passWordVerif}" reRender="validemotdepass" />
                        </h:inputSecret>
                        <h:message id="error_pass2"for="pass2"  showDetail="true" style="color: red"/>
                    </a4j:region>
     
                    <a4j:region id="password2">
                        <h:outputText value="Verif Password"/>
                        <h:inputSecret id="verif_pass2"value="#{login.password2}" required="true" requiredMessage="Ce champs est obligatoire">
                            <a4j:support event="onkeyup" action="#{login.passWordVerif}" reRender="validemotdepass" />
                        </h:inputSecret>
                        <h:message id="error_verif_pass2"for="verif_pass2"  showDetail="true" style="color: red"/>
     
                        <h:outputText  id="validemotdepass"value="#{login.passwordVerif}" style="color: red"/>
                    </a4j:region>
     
                    <h:outputText value="Email"/>
                    <h:inputText id="email"value="#{login.email}"  required="true" requiredMessage="Ce champs est obligatoire" validator="#{emailvalidation.validate}"/>
                    <h:message id="error_email"for="email"  showDetail="true" style="color: red"/>
     
                    <h:commandButton value="Validez" action="#{login.doCreateCustomer}"/>
     
     
                </h:panelGrid>
     
            </h:form>
     
        </h:panelGrid>
     
    </f:view>

    et pour finir le code généré de ma page web :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
     
     
     
    <!-- RichFaces tag declaration-->
     
     
     
     
     
     
    <script charset="utf-8" id="injection_graph_func" src="chrome://skype_ff_toolbar_win/content/injection_graph_func.js"></script></head><body>Bienvenue sur SAGACITY<link class="component" href="/sagacityWeb/faces/a4j/s/3_3_1.GAorg/richfaces/renderkit/html/css/basic_both.xcss/DATB/eAF7sqpgb-jyGdIAFrMEaw__" rel="stylesheet" type="text/css"><link class="component" href="/sagacityWeb/faces/a4j/s/3_3_1.GAorg/richfaces/renderkit/html/css/extended_both.xcss/DATB/eAF7sqpgb-jyGdIAFrMEaw__" rel="stylesheet" type="text/css"><script src="/sagacityWeb/faces/a4j/g/3_3_1.GAorg.ajax4jsf.javascript.AjaxScript" type="text/javascript"></script><script type="text/javascript">window.RICH_FACES_EXTENDED_SKINNING_ON=true;</script><script src="/sagacityWeb/faces/a4j/g/3_3_1.GAorg/richfaces/renderkit/html/scripts/skinning.js" type="text/javascript"></script><table id="panelPrincipal">
     
    <tbody>
    <tr>
    <td>
    <form id="formPrincipal" name="formPrincipal" method="post" action="/sagacityWeb/faces/Login.jsp" enctype="application/x-www-form-urlencoded">
    <input name="formPrincipal" value="formPrincipal" type="hidden">
    <table id="formPrincipal:panelLogin">
    <tbody>
    <tr>
    <td>Login</td>
    </tr>
    <tr>
    <td><input id="formPrincipal:login" name="formPrincipal:login" type="text"></td>
    </tr>
    <tr>
    <td></td>
    </tr>
     
    <tr>
    <td>Password</td>
    </tr>
    <tr>
    <td><input id="formPrincipal:pass" name="formPrincipal:pass" value="" type="password"></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td><input name="formPrincipal:j_id_id35" value="Validez" type="submit"></td>
    </tr>
    </tbody>
    </table>
    <input name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1" type="hidden">
    </form></td>
     
    <td>
    <form id="formEnregistrement" name="formEnregistrement" method="post" action="/sagacityWeb/faces/Login.jsp" enctype="application/x-www-form-urlencoded">
    <input name="formEnregistrement" value="formEnregistrement" type="hidden">
    enregistrez vous<table id="formEnregistrement:panelEnregistrement">
    <tbody>
    <tr>
    <td>Firstname</td>
    </tr>
    <tr>
    <td><input id="formEnregistrement:firstname" name="formEnregistrement:firstname" type="text"></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
     
    <td>Lastname</td>
    </tr>
    <tr>
    <td><input id="formEnregistrement:lastname" name="formEnregistrement:lastname" type="text"></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td>Login<input id="formEnregistrement:login2" name="formEnregistrement:login2" onkeyup="A4J.AJAX.Submit('formEnregistrement:ajax_region_1','formEnregistrement',event,{'similarityGroupingId':'formEnregistrement:j_id_id65','parameters':{'formEnregistrement:j_id_id65':'formEnregistrement:j_id_id65'} ,'actionUrl':'/sagacityWeb/faces/Login.jsp'} )" type="text"><span id="formEnregistrement:ajax_login2">k</span><span id="formEnregistrement:test"></span></td>
    </tr>
    <tr>
    <td>Password<input id="formEnregistrement:pass2" name="formEnregistrement:pass2" value="" onkeyup="A4J.AJAX.Submit('formEnregistrement:password1','formEnregistrement',event,{'similarityGroupingId':'formEnregistrement:j_id_id82','parameters':{'formEnregistrement:j_id_id82':'formEnregistrement:j_id_id82'} ,'actionUrl':'/sagacityWeb/faces/Login.jsp'} )" type="password"></td>
     
    </tr>
    <tr>
    <td>Verif Password<input id="formEnregistrement:verif_pass2" name="formEnregistrement:verif_pass2" value="" onkeyup="A4J.AJAX.Submit('formEnregistrement:password2','formEnregistrement',event,{'similarityGroupingId':'formEnregistrement:j_id_id94','parameters':{'formEnregistrement:j_id_id94':'formEnregistrement:j_id_id94'} ,'actionUrl':'/sagacityWeb/faces/Login.jsp'} )" type="password"><span id="formEnregistrement:validemotdepass" style="color: red;"></span></td>
    </tr>
    <tr>
    <td>Email</td>
    </tr>
    <tr>
    <td><input id="formEnregistrement:email" name="formEnregistrement:email" type="text"></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    <tr>
    <td><input name="formEnregistrement:j_id_id108" value="Validez" type="submit"></td>
     
    </tr>
    </tbody>
    </table>
    <input name="javax.faces.ViewState" id="javax.faces.ViewState" value="j_id1" type="hidden">
    </form></td>
    </tr>
    </tbody>
    </table>
     
    <script>A4J.AJAX._scriptEvaluated=true;</script></body></html>
    je ne vois pas pourquoi rien ne s'affiche
    j'envoi bien le message à la balise qui à pour id : formEnregistrement:error_login2 à moins que le id ne soit pas correct ou qu'il manque quelque chose

    Avez vous une idée ?
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Je peux me tromper, mais il me semble que dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    facesContext.addMessage("formEnregistrement:error_login2", new FacesMessage(FacesMessage.SEVERITY_ERROR,"le login est déjà présent dans la base",""));
    l'identifiant devrait être "login2".

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/03/2014, 17h10
  2. Messages properties et ManagedBean
    Par mysianne dans le forum JSF
    Réponses: 3
    Dernier message: 27/07/2013, 21h22
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. A lire impérativement avant de poster un message
    Par ok.Idriss dans le forum Demandes
    Réponses: 0
    Dernier message: 01/05/2002, 18h57

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