Tom*_*mas 10 jsf url-pattern jsf-2 servlet-mapping
我正在开发一个JSF 2 Web应用程序.对于声望的purpouses我希望每个URL以.jsf扩展名结尾.现在结束了.xhtml.如果我将其直接更改为.jsfWeb浏览器地址栏,则会显示HTTP 500错误.
我该怎么设置它.jsf?
Bal*_*usC 17
由指定的JSF页面的URL模式<servlet-mapping>中的FacesServlet在web.xml.正如您提到的那样.xhtml工作正常,您显然已将其配置如下:
<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>*.xhtml</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
您需要相应地更改<url-pattern>以获得所需的虚拟URL扩展.
<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>*.jsf</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
为了达到具体的功能要求,这就是你需要改变的全部.
但是,这会带来安全问题.终端用户现在可以看到原始的Facelets文件的源代码从URL更改扩展名时回.jsf至.xhtml.您可以通过将以下安全性约束添加到web.xml:
<security-constraint>
<display-name>Restrict access to Facelets source code.</display-name>
<web-resource-collection>
<web-resource-name>Facelets</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11462 次 |
| 最近记录: |