我将 JBoss 7.1 与 JSF 2.1/Prime Faces 一起使用,并不断遇到标题中列出的错误。我已经尝试了这里提出的许多建议,但最终都出现了相同的错误。
文件结构为:
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
结果相同。
我缺少什么?
你犯了两个错误。
-
/WEB-INF
文件夹用于存放配置文件、包含文件、模板文件、标记文件等,这些文件应该隐藏以防止直接访问,而不是用于公开访问的文件。将可公开访问的文件放在外面/WEB-INF
folder.
-
/faces
根本不应该使用文件夹。一个虚拟的/faces/*
URL 模式开启FacesServlet
并不意味着您应该拥有这样的物理文件夹。去掉它。
所以,一切都只是
WebContent
|-- META-INF
|-- WEB-INF
| |-- faces-config.xml
| `-- web.xml
`-- login.xhtml
and
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
and
http://localhost:8080/clientAccountManager/login.xhtml
应该做。
也可以看看:
- 哪些 XHTML 文件需要放入 /WEB-INF 中,哪些不需要? https://stackoverflow.com/questions/9031811/which-xhtml-files-do-i-need-to-put-in-web-inf-and-which-not
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)