为了账号安全,请及时绑定邮箱和手机立即绑定

有时我看到JSFURL是*.jsf,有时是*.xhtml,有时是/Faces/*。为什么?

有时我看到JSFURL是*.jsf,有时是*.xhtml,有时是/Faces/*。为什么?

有时我看到JSFURL是*.jsf,有时是*.xhtml,有时是/Faces/*。为什么?尝试学习JSF,有时我看到URL是*.jsf有时也是*.xhtml或/faces/*..有人能补充我的知识吗?当我使用Faclet创建JSF时,文件扩展名为.xhtml,那么在哪里呢?.jsfURL扩展来自?
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

这个.jsf扩展是FacesServlet在JSF1.2期间,通常映射在web.xml.

<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>*.jsf</url-pattern></servlet-mapping>

这个.xhtml扩展名为实际在您实际放置在Web应用程序的Web内容中时,可以使用Facelets文件。Webapp/WebContent/page.xhtml.

如果使用.jsf推广,如:http://localhost:8080/webapp/page.jsf然后FacesServlet将被调用,找到page.xhtml文件并解析/呈现其JSF组件。如果FacesServlet如果不调用,则Enduser将得到原始的XHTML源代码(通过右键单击即可看到)。视图源).

有时*.faces延期或/faces/*使用折页映射。但这是在JSF1.0/1.1时代的早期。你可以自由选择和使用任何你想要的映射FacesServlet听着,即使是无话可说*.xyz..实际页面本身应该始终具有.xhtml扩展,但这是可以通过以下方法配置的<context-param>在……里面web.xml:

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xml</param-value></context-param>

这将更改FacesServlet定位page.xml安装(违约)page.xhtml.

最近,使用JSF/Facelets 2.0 a*.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>

通过这种方式,您不需要配置一些安全限制来将原始源文件隐藏起来,例如,当终端用户发生更改时.jsf在URL中.xhtml在浏览器地址栏中。只有工具(IDE和插件)和学习资源仍然需要赶上所提倡的*.jsf*.xhtml..根据JSF 2.3,FacesServlet默认情况下,将自动注册到*.xhtml也(旁边)/faces/**.faces*.jsf)。这是支持mojarra 2.2.11。

另见:


查看完整回答
反对 回复 2019-06-10
  • 1 回答
  • 0 关注
  • 597 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信