Jsf 2 JSF2对Facelet文件的访问

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

我开始探索JSF2 facelet,我想在一个简单的项目中对此进行测试

我只是对JSF2中的文件结构有一些疑问。当我使用Spring时, 我习惯于将我的所有页面置于WEB-INF下,这样浏览器就无法访问它们

我注意到在JSF2中,您应该将*.xhtml放在WEB-INF之外,并允许通过 Facesservlet

问题,这是否意味着所有使用JSF的企业应用程序总是 web.xml中的安全约束

<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
,那么就没有必要了。谢谢您一直以来的帮助!(我真的忘了有多少次了,我说谢谢你……)