bonjour je suis débuté avec jsf et je veux bien lancer ma premiere jsf avec formulaire et vérifier la saisie mail
voila le code
Code:
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 import java.util.Date; import javax.faces.application.FacesMessage; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.validator.ValidatorException; public class UserBean { String email; public UserBean() { } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public void validateEmail(FacesContext context, UIComponent toValidate, Object value) throws ValidatorException { String eMail = (String) value; if (eMail.indexOf("@") < 0) { FacesMessage message = new FacesMessage("Adresse Email invalide !"); throw new ValidatorException(message); } } public String ajoutUtilisateurConfirme() { // Cette méthode pourrait faire un appel en base de données vie DAO ou couche service System.out.println("Ajout d'un nouvel utilisateur"); return "success"; } }
message d'erreurCode:
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 <%@ page contentType="text/html"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <f:view> <html> <head> <title>Un formulaire d'inscription JSF</title> </head> <body> <h:form> <h4> Formulaire JSF d'inscription au <a href="http://www.objis.com/formation-java/club-objis.html">Club Objis</a>. </h4> <table> </tr> <tr> <td>Email:</td> <td> <h:inputText value="#{UserBean.email}" required="true" validator="#{UserBean.validateEmail}" id="email"/> <h:message for="email"/> </td> </tr> <tr> </tr> </table> <p><h:commandButton value="Inscription" action="register" /></p> </h:form> <hr> <a href="http://www.objis.com"><img src="images/logo-objis.png" border=0></a> </body> </html> </f:view>
sur la page web messageCode:
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 javax.faces.FacesException: javax.faces.application.ViewExpiredException at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:490) at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:378) at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(HtmlResponseStateManager.java:213) at org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlResponseStateManager.java:160) at org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspStateManagerImpl.java:400) at org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView(ViewDeclarationLanguageBase.java:106) at org.apache.myfaces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:278) at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:123) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: javax.faces.application.ViewExpiredException at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:483) ... 25 more 08-mai-2011 3:37:07 org.apache.myfaces.renderkit.ErrorPageWriter handleThrowable GRAVE: An exception occurred javax.faces.application.ViewExpiredException: /register.jspNo saved view state could be found for the view identifier: /register.jsp at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:171) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
Code:
1
2
3
4
5
6 An Error Occurred: /register.jspNo saved view state could be found for the view identifier: /register.jsp Caused by: javax.faces.application.ViewExpiredException - /register.jspNo saved view state could be found for the view identifier: /register.jsp