我正在使用JBOSS 7.1带有JSF 2.1/Prime Faces的JBOSS,并继续陷入标题中列出的错误。我尝试了这里提出的许多建议,最终都遇到了相同的错误。
文件结构是:
WEB-INF
faces
login.xhtml
我在web.xml中有以下内容:
<display-name>clientAccountManager</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
我正在使用以下URL访问该文件:
http://localhost:8080/clientAccountManager/faces/login.xhtml
我也将URL模式更改为 *.xhtml并使用:
http://localhost:8080/clientAccountManager/login.xhtml
,结果相同。
我缺少什么?
您犯了2个错误。
-
/WEB-INF
文件夹用于配置文件,包括文件,模板文件,标签文件等,这些文件应该隐藏在直接访问中,而不是公开访问的文件。将公开访问的文件放在/WEB-INF
文件夹之外。 -
/faces
文件夹根本不应使用。FacesServlet
上的虚拟/faces/*
URL模式并不意味着您应该具有这样的物理文件夹。删除它。
所以,全部,只有
WebContent
|-- META-INF
|-- WEB-INF
| |-- faces-config.xml
| `-- web.xml
`-- login.xhtml
和
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
和
http://localhost:8080/clientAccountManager/login.xhtml
应该做。
另请参见:
- 我需要放入哪些XHTML文件/Web-Inf,哪些不是?