Tha*_*ham 57 jsf web.xml facelets url-pattern
一直试着学习JSF,有时候我看到的URL *.jsf有时是*.xhtml或者/faces/*.请问有人填写我的知识吗?当我使用Facelet创建JSF时,文件扩展名是.xhtml,所以.jsfURL扩展来自哪里?
Bal*_*usC 99
所述.jsf扩展是在FacesServletIS在JSF 1.2期间经常在映射上web.xml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
该.xhtml扩展是的实际的Facelets文件作为你身体放置在你的web应用,例如在web内容Webapp/WebContent/page.xhtml.
如果您使用.jsf扩展名调用此页面,例如,http://localhost:8080/webapp/page.jsf那么FacesServlet将调用它,找到该page.xhtml文件并解析/呈现其JSF组件.如果FacesServlet未调用,则最终用户将最终获得原始XHTML源代码(可以通过右键单击View Source查看).
有时使用*.faces扩展或文件/faces/*夹映射.但这是从JSF 1.0/1.1时代开始的.你可以自由选择和使用你想要FacesServlet听的任何地图,即使这是一个无所谓的说法*.xyz.实际的页面本身应该始终具有.xhtml扩展名,但是这是由以下configureable <context-param>在web.xml:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
这将更FacesServlet改为定位page.xml(默认)的instad page.xhtml.
最近,使用JSF/Facelets 2.0,*.xhtml已经使用了映射.在JSF/Facelets 1.x中,不可能使用与物理文件相同的映射扩展.这将导致无限循环.但是因为JSF/Facelets 2.0是可能的,这允许你通过调用页面http://localhost:8080/webapp/page.xhtml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
这样,您无需配置某些安全限制来隐藏原始源文件,以防止最终用户.jsf在URL中更改为.xhtml浏览器地址栏时的情况.只有工具(IDE和插件)和学习资源仍然需要赶上从倡导举动*.jsf来*.xhtml.根据JSF 2.3,FacesServlet默认情况下将自动注册*.xhtml(旁边/faces/*,*.faces和*.jsf).这被移植到Mojarra 2.2.11.
| 归档时间: |
|
| 查看次数: |
40187 次 |
| 最近记录: |