Ответ 1
Он может использоваться без JSF. Просто нарисуйте FacesServlet
по шаблону URL *.xhtml
в web.xml
и выполните not declare
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
в любом шаблоне Facelet. На самом деле это не вредно объявить их, но таким образом вы не будете "случайно" использовать их. Вы можете как хорошо писать простой HTML в нем и отправить форму на простой сервлет и иметь сервлет вперед/перенаправление на Facelet.
Вам нужно только помнить, что с сервлетом вы получаете гораздо больше кода шаблона для сбора параметров запроса, преобразования/проверки их, поддержания и обновления значений модели, вызывая бизнес-действия, в то время как все эти повторяющиеся шаблоны код не нужен с полноценным управляемым JSF bean.
Кроме того, вы не можете использовать Facelets с фреймворками MVC на основе запроса, которые доступны только для тегов JSP, таких как Struts, Spring MVC и т.д.