我有一个带有 index.jsp 的小型Web应用程序,它可以转发(主要只包含):
<jsp:forward page="/pages/inputname.jsf" />
web.xml 包含(除了您期望的所有其他内容;请参阅下文):
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping>
inputname.jsp 未呈现(这是URI):
http://localhost:8080/simpleWeb/index.jsp
该页面因此出现在浏览器中(标签,输入编辑字段,按钮):
#{msg.prompt} #{personBean.personName} #{msg.button_text}
我猜这是因为它没有通过Faces servlet。但是,我不确定如何强制执行。(请注意,我在其他地方,使用RichFaces和MyFaces在处理 .xhtml 文件时也遇到了类似的问题,但我想先解决这个更简单的情况。)
本教程让我使用WEB-INF / lib /中的这些库(通过Maven):
avalon-framework-4.1.3.jar commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-digester-1.8.jar commons-logging-1.1.jar jsf-api-1.2_02.jar jsf-impl-1.2-b19.jar jstl-1.1.2.jar log4j-1.2.12.jar logkit-1.0.1.jar servlet-api-2.3.jar standard-1.1.2.jar
任何帮助将不胜感激。
web.xml (是的,它具有DOCTYPE网络应用程序标头):
<web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml</param-value> </context-param> <listener> <listener-class>com.sun.faces.config.ConfigureListener</listener-class> </listener> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> </web-app>
两种解决方案:
index.jsp
index.jsf
<c:redirect>
无论如何,这样index.jsp是毫无意义的。只需添加/pages/inputname.jsf如<welcome- file>在web.xml提供一个 空白 /pages/inputname.jsf文件旁边的 真正 /pages/inputname.jsp愚弄服务器,文件存在(否则会404)。
/pages/inputname.jsf
<welcome- file>
web.xml
/pages/inputname.jsp
至于web.xml,DOCTYPE不属于那里。这是Servlet 2.3的一种古老的方法,在此之前(已有近十年的历史了)。在Servlet 2.4及更高版本上,有XSD。更重要的是,由于您使用的是JSF 1.2,因此web.xml应 至少 声明为Servlet 2.4,最好是Servlet 2.4,最好是容器可以支持的最高值,以便可以利用最新的API设施。Tomcat 5.5是Servlet 2.4,Tomcat 6.0是Servlet 2.5,Tomcat 7.0是Servlet 3.0。
DOCTYPE