【发布时间】:2009-03-19 15:54:04
【问题描述】:
我是 Icefaces 和 Facelets 的新手,但我正在一个新项目中使用它们。我已经配置好了一切工作正常。但是,当我访问 mywebapp/file.xhtml 时,整个 facelets 模板源会出现在我的浏览器中。我该如何隐藏它以防止用户查看我的服务器端模板?
【问题讨论】:
标签: jakarta-ee facelets icefaces
我是 Icefaces 和 Facelets 的新手,但我正在一个新项目中使用它们。我已经配置好了一切工作正常。但是,当我访问 mywebapp/file.xhtml 时,整个 facelets 模板源会出现在我的浏览器中。我该如何隐藏它以防止用户查看我的服务器端模板?
【问题讨论】:
标签: jakarta-ee facelets icefaces
将所有模板放入WEB-INF/someDirectory/templates。
然后根据 facelets 文档将它放在你的 web.xml 中,用于所有其他 xhtml 文件:
<security-constraint>
<display-name>Restrict XHTML Documents</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Only Let 'developer's access XHTML pages</description>
<role-name>someone</role-name>
</auth-constraint>
</security-constraint>
【讨论】:
在 web.xml 中应该有一个条目,可以让您配置 xhtml 模板的行为(显示/隐藏..)
如果您将.jsp 文件移动到WEB-INF 文件夹(您必须为JSF 重新配置jsp 路径),您将无法通过URL 访问它们。我认识的每一个 J2EE-Server/Webcontainer 都是这样操作的。
另一种方法是自己编写的 servlet 过滤器等。
但是,您为什么要隐藏您的模板?
【讨论】: