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 :
je ne vois pas pourquoi rien ne s'affiche
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>
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
Partager