【发布时间】:2013-12-14 11:32:48
【问题描述】:
在WAS服务器上部署应用程序时,URL是如何设置的?除了我设置的上下文路径之外,我还在 URL 中获得了 /faces/。我不知道这是从哪里来的。
【问题讨论】:
在WAS服务器上部署应用程序时,URL是如何设置的?除了我设置的上下文路径之外,我还在 URL 中获得了 /faces/。我不知道这是从哪里来的。
【问题讨论】:
/faces/ 可识别为 JSF 1.0/1.1 样式的 URL 模式,其中 FacesServlet 通常默认映射基于 IDE 生成的项目配置,开发人员随后未对其进行编辑。您可以在web.xml 中看到类似这样的内容:
<servlet-mapping>
<servlet-name>Faces Servlet<servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
也许还有一个<welcome-file>,例如faces/index.xhtml 左右。
为了摆脱它,只需将其替换为*.xhtml。
<servlet-mapping>
<servlet-name>Faces Servlet<servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
这样你就可以通过http://example.com/context/page.xhtml而不是http://example.com/context/faces/page.xhtml打开JSF页面,从而触发FacesServlet(即负责所有JSF工作的那个)。
或者,当您实际使用旧版 JSF 1.x 和/或当您实际使用旧版 JSP 而不是其后续 Facelets (XHTML) 时,您可以改用 *.jsf。
<servlet-mapping>
<servlet-name>Faces Servlet<servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
这样你可以通过http://example.com/context/page.jsf而不是http://example.com/context/faces/page.jsp打开JSF页面。
【讨论】: