Я хочу поместить мои файлы JSF 2.0 xhtml в WEB-INF \ jsf. Как мне получить к ним доступ? Я знаю, что что-то внутри WEB-INF не подвергается воздействию извне, поэтому мне нужен контроллер, чтобы перенаправить меня на соответствующую JSP, верно? (Это также модель 2 модели IIRC).
Могу ли я добиться этого с помощью параметра внутри web.xml /face-config.xml? Я думаю, что FacesServlet является контроллером моего веб-приложения, поэтому он должен служить этой цели?
И еще один вопрос для понимания модели Model 2. Каждое действие должно идти сначала к сервлету, который затем обрабатывает следующий возможный шаг? То есть простой
запрещен в этом шаблоне, поскольку он не попадает в управляющий сервлет?
Я хочу поместить мои JSF 2.0 xhtml файлы в WEB-INF\jsf. Как мне тогда получить к ним доступ?
Вы не можете. Файлы в папке /WEB-INF
недоступны напрямую.
Есть два варианта обхода проблемы публичного доступа к исходным файлам JSF.
Сопоставить FacesServlet
на *.xhtml
вместо *.jsf
.
Или ограничьте прямой доступ к *.xhtml
с помощью
в web.xml
.
.
Ограничить прямой доступ к файлам XHTML
XHTML файлы
*.xhtml
И еще один вопрос для понимания паттерна Model 2. Должно ли каждое действие идти сначала к сервлету, который затем обрабатывает следующий возможный шаг?
FacesServlet
уже делает это. Это контроллер. В JSF вы уже имеете простой javabean в качестве модели и файл JSP/Facelets в качестве представления. FacesServlet
как контроллер уже взял на себя всю неприятную работу по сбору параметров запроса, валидации, преобразованию, обновлению модели и навигации.
Значит, простой
запрещен в этом паттерне, поскольку он не обращается к управляющему сервлету?
Нет, это совершенно нормально. Контроллер включится, когда это будет необходимо. Если ресурсу не нужен контроллер (т.е. статический ресурс), то вам также не нужно пропускать его через какой-то контроллер.
В будущем, пожалуйста, задавайте несколько вопросов в отдельных вопросах Stack Overflow.