JSF模板文件的显式目录

时间:2010-07-21 08:57:02

标签: java configuration jsf servlets web-applications

我刚刚进入Seam / JSF开发并寻找一种从不同位置查找XHTML模板文件的方法。

像这样配置JSF应用程序时:

<servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.seam</url-pattern>
</servlet-mapping>

<context-param>
  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
  <param-value>.xhtml</param-value>
</context-param>

当我输入以下网址时:

http://localhost/test.seam

系统在

加载XHTML文件
<webapp>/test.xhtml

我想配置的是前缀目录,以便从

中查找文件
<webapp>/WEB-INF/views/test.xhtml

那么,有没有办法实现这样的事情:

<context-param>
  <param-name>javax.faces.DEFAULT_PREFIX</param-name>
  <param-value>/WEB-INF/views/</param-value>
</context-param>

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

没有办法。我希望有一种方法,因为通过将它们隐藏在/WEB-INF中来阻止它们直接访问会非常有用。我敢打赌,这也是你的实际功能要求。您可以通过(ab)使用声明性容器管理安全性来实现此目的。在security-constraint url-pattern *.xhtml上添加auth-constraintweb.xml<security-constraint> <display-name>Restrict direct access to XHTML files</display-name> <web-resource-collection> <web-resource-name>XHTML files</web-resource-name> <url-pattern>*.xhtml</url-pattern> </web-resource-collection> <auth-constraint /> </security-constraint> ,如下所示:

{{1}}