gpt4 book ai didi

jsf - 错误 :/login. 在ExternalContext 中找不到 xhtml 作为资源

转载 作者:行者123 更新时间:2023-12-02 11:17:17 24 4
gpt4 key购买 nike

我正在将 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

结果相同。

我错过了什么?

最佳答案

你犯了两个错误。

  1. /WEB-INF 文件夹用于存放配置文件,包括文件、模板文件、标记文件等,这些文件应该隐藏以防止直接访问,而不是用于公开访问的文件。将可公开访问的文件放在 /WEB-INF 文件夹之外。

  2. 根本不应该使用
  3. /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

应该做。

另请参阅:

关于jsf - 错误 :/login. 在ExternalContext 中找不到 xhtml 作为资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13148624/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com