我刚刚进入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>
感谢您的帮助!
答案 0 :(得分:5)
没有办法。我希望有一种方法,因为通过将它们隐藏在/WEB-INF
中来阻止它们直接访问会非常有用。我敢打赌,这也是你的实际功能要求。您可以通过(ab)使用声明性容器管理安全性来实现此目的。在security-constraint
url-pattern
*.xhtml
上添加auth-constraint
空web.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}}