有时我看到JSF URL是*.JSF,有时是*.xhtml,有时是/faces/*。为什么?
我一直在尝试学习JSF,有时我看到URL是有时我看到JSF URL是*.JSF,有时是*.xhtml,有时是/faces/*。为什么?,jsf,web.xml,facelets,url-pattern,Jsf,Web.xml,Facelets,Url Pattern,我一直在尝试学习JSF,有时我看到URL是*.JSF,有时是*.xhtml或/faces/*。有人能告诉我吗?当我使用Facelet创建JSF时,文件扩展名是.xhtml,那么.JSFURL扩展名从何而来?.JSF扩展名是FacesServlet在JSF1.2期间的位置,通常映射在web.xml中 <servlet-mapping> <servlet-name>facesServlet</servlet-name> <url-patter
*.JSF
,有时是*.xhtml
或/faces/*
。有人能告诉我吗?当我使用Facelet创建JSF时,文件扩展名是.xhtml
,那么.JSF
URL扩展名从何而来?.JSF
扩展名是FacesServlet
在JSF1.2期间的位置,通常映射在web.xml
中
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
这将更改FacesServlet
以定位page.xml
instad of(默认)page.xhtml
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
最近,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>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
小脸蛋
*.xhtml
这样,您就不需要配置一些安全限制来隐藏原始源文件,以备最终用户在URL中将例如.jsf
更改为浏览器地址栏中的.xhtml
时使用。只有工具(IDE和插件)和学习资源仍然需要赶上提倡的从*.jsf
到*.xhtml
的转变。根据JSF 2.3,默认情况下,FacesServlet
也将在*.xhtml
上自动注册(紧挨着/faces/*
,*.faces
和*.JSF
)。这是后端口到Mojarra 2.2.11
另见: