Bonjour,
J'ai créé un petit projet, avec Netbeans, en JSF et Spring dont l'arborescence se trouve en PJ:
Ma page index.jsp (dans WEB-INF/jsp) est censée aller chercher ses libellés dans le fichier messages.properties (dans le package java resource):
Je déclare ce "resource bundle" dans mon faces-config.xml:
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 <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <f:loadBundle basename="resource.messages" var="msg"/> <!--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Welcome to Spring Web MVC project</title> </head> <body> <p>Hello! This is the default welcome page for a Spring Web MVC project.</p> <p><i>To display a different welcome page for this project, modify</i> <tt>index.jsp</tt> <i>, or create your own welcome page then change the redirection in</i> <tt>redirect.jsp</tt> <i>to point to the new welcome page and also update the welcome-file setting in</i> <tt>web.xml</tt>.</p> <f:view> <h1> <h:outputText value="#{msg.inputname_header}"/> </h1> <h:form id="helloForm"> <h:outputText value="#{msg.prompt}"/> <h:inputText value="#{personBean.personName}" /> <h:commandButton action="greeting" value="#{msg.button_text}" /> </h:form> </f:view> </body> </html>
Or, lorsque j'arrive sur index.jsp, j'ai l'erreur suivante:
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 <?xml version='1.0' encoding='UTF-8'?> <faces-config version="1.2" 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_1_2.xsd"> <application> <locale-config> <default-locale>en</default-locale> <supported-locale>en</supported-locale> </locale-config> <message-bundle> resource.messages </message-bundle> </application> <navigation-rule> <from-view-id>/jsp/index.jsp</from-view-id> <navigation-case> <from-outcome>greeting</from-outcome> <to-view-id>/jsp/greeting.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>personBean</managed-bean-name> <managed-bean-class>bean.PersonBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> </faces-config>
Comme s'il ne parvenait pas à localiser mon fichier properties...
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 org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/index.jsp at line 4 1: <%@page contentType="text/html" pageEncoding="UTF-8"%> 2: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 3: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 4: <f:loadBundle basename="resource.messages" var="msg"/> 5: 6: 7: <!--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) cause mère java.lang.NullPointerException com.sun.faces.taglib.jsf_core.LoadBundleTag.doStartTag(LoadBundleTag.java:130) org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_f_005floadBundle_005f0(index_jsp.java:128) org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:75) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167) org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239) org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Pour info, voici son contenu:
D'après mes recherches, c'est un problème récurrent. Mais en vérifiant les points indiqués, je ne vois pas là où ça pèche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 # To change this template, choose Tools | Templates # and open the template in the editor. inputname_header=JSF KickStart prompt=Tell us your name: greeting_text=Welcome to JSF button_text=Say Hello sign=!
Merci de votre aide!
EDIT: je travaille avec Tomcat 6 et j'ai le même souci lorsque je mets
dans le bloc <f:view> dans la jsp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <f:loadBundle basename="resource.messages" var="msg"/>
Partager