我开始探索 JSF 2 facelet,我想在一个简单的项目中对此进行测试。
我只是对 JSF 2 中的文件结构有一些疑问。当我使用 Spring 时,
我习惯将所有页面放在 WEB-INF 下,这样浏览器就无法访问它们。
我注意到在 JSF 2 中,您应该将 *.xhtml 放在 WEB-INF 之外并允许通过
Faces Servlet。
问题,这是否意味着所有使用 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?
我的理解是否正确,如果正确,哪个更适合使用?
谢谢
最佳答案
JSF 2.x 中的第三种选择是映射 FacesServlet
直接上*.xhtml
而不是 *.jsf
管他呢。这样您就不需要拼凑安全约束或过滤器来阻止最终用户直接访问 *.xhtml
文件。它的唯一缺点是您不能在不调用 FacesServlet
的情况下提供“普通的”XHTML 文件。 ,但这反过来已经没有多大意义,因为这些文件在技术上应该具有 *.html
延期。
请注意,这在旧的 JSF 1.x 中不起作用。 FacesServlet
将在无限循环中运行,一次又一次地调用自己。
关于jsf-2 - JSF 2 访问 Facelet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7358697/