Явный каталог для файлов шаблонов JSF - PullRequest
3 голосов
/ 21 июля 2010

Я только начинаю разработку 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>

при вводе URL-адреса, например:

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 Ответ

5 голосов
/ 21 июля 2010

Нет пути. Хотелось бы, чтобы был способ, потому что было бы очень полезно предотвратить прямой доступ к ним, скрыв их в /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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...