Jsf 2 JSF2对Facelet文件的访问
我开始探索JSF2 facelet,我想在一个简单的项目中对此进行测试 我只是对JSF2中的文件结构有一些疑问。当我使用Spring时, 我习惯于将我的所有页面置于WEB-INF下,这样浏览器就无法访问它们 我注意到在JSF2中,您应该将*.xhtml放在WEB-INF之外,并允许通过 Facesservlet 问题,这是否意味着所有使用JSF的企业应用程序总是 web.xml中的安全约束Jsf 2 JSF2对Facelet文件的访问,jsf-2,facelets,Jsf 2,Facelets,我开始探索JSF2 facelet,我想在一个简单的项目中对此进行测试 我只是对JSF2中的文件结构有一些疑问。当我使用Spring时, 我习惯于将我的所有页面置于WEB-INF下,这样浏览器就无法访问它们 我注意到在JSF2中,您应该将*.xhtml放在WEB-INF之外,并允许通过 Facesservlet 问题,这是否意味着所有使用JSF的企业应用程序总是 web.xml中的安全约束 <security-constraint> <web-resource-coll
<security-constraint>
<web-resource-collection>
<web-resource-name>XHTML files</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
XHTML文件
*.xhtml
或者他们正在使用某种过滤器,它捕获所有传入的请求,然后拒绝请求
有*.xhtml吗
我的理解正确吗?如果正确,哪一个更适合使用
谢谢在JSF2.x中,第三种选择是直接在
*.xhtml
上映射FacesServlet
,而不是*.JSF
或其他任何东西。通过这种方式,您不需要使用安全约束或过滤器来阻止最终用户直接访问*.xhtml
文件。它唯一的缺点是,如果不调用FacesServlet
,就无法提供“普通的”XHTML文件,但这又没有多大意义,因为从技术上讲,这些文件应该具有*.html
扩展名
请注意,这在旧的JSF1.x中不起作用。
FacesServlet
将在一个无限循环中运行,一次又一次地调用自身。这是否证实了我对上述两种方法的理解?还感谢第三种方法,因为我从来没有想过或读过这方面的内容?是的,你的理解是正确的。这就是他们对JSF1.x所做的。它也适用于JSF 2.x,但是如果您只是在同一视图扩展上映射FacesServlet
,那么就没有必要了。谢谢您一直以来的帮助!(我真的忘了有多少次了,我说谢谢你……)