JSF-файлы внутри WEB- Каталог INF, как мне получить к ним доступ?

Я хочу поместить мои файлы JSF 2.0 xhtml в WEB-INF \ jsf. Как мне получить к ним доступ? Я знаю, что что-то внутри WEB-INF не подвергается воздействию извне, поэтому мне нужен контроллер, чтобы перенаправить меня на соответствующую JSP, верно? (Это также модель 2 модели IIRC).

Могу ли я добиться этого с помощью параметра внутри web.xml /face-config.xml? Я думаю, что FacesServlet является контроллером моего веб-приложения, поэтому он должен служить этой цели?

И еще один вопрос для понимания модели Model 2. Каждое действие должно идти сначала к сервлету, который затем обрабатывает следующий возможный шаг? То есть простой запрещен в этом шаблоне, поскольку он не попадает в управляющий сервлет?

11
задан BalusC 9 November 2015 в 20:21
поделиться

1 ответ

Я хочу поместить мои JSF 2.0 xhtml файлы в WEB-INF\jsf. Как мне тогда получить к ним доступ?

Вы не можете. Файлы в папке /WEB-INF недоступны напрямую.

Есть два варианта обхода проблемы публичного доступа к исходным файлам JSF.

  1. Сопоставить FacesServlet на *.xhtml вместо *.jsf.

  2. Или ограничьте прямой доступ к *.xhtml с помощью в web.xml.

    .
     Ограничить прямой доступ к файлам XHTML
     
     XHTML файлы
     *.xhtml
     
     
    

См. также:


И еще один вопрос для понимания паттерна Model 2. Должно ли каждое действие идти сначала к сервлету, который затем обрабатывает следующий возможный шаг?

FacesServlet уже делает это. Это контроллер. В JSF вы уже имеете простой javabean в качестве модели и файл JSP/Facelets в качестве представления. FacesServlet как контроллер уже взял на себя всю неприятную работу по сбору параметров запроса, валидации, преобразованию, обновлению модели и навигации.

См. также:


Значит, простой запрещен в этом паттерне, поскольку он не обращается к управляющему сервлету?

Нет, это совершенно нормально. Контроллер включится, когда это будет необходимо. Если ресурсу не нужен контроллер (т.е. статический ресурс), то вам также не нужно пропускать его через какой-то контроллер.


В будущем, пожалуйста, задавайте несколько вопросов в отдельных вопросах Stack Overflow.

19
ответ дан 3 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: