Ответ 1
Да, это определенно возможно, если вы используете JSF 2.0, часть Java EE 6.
Что касается управляемых beans и других классов JSF, таких как валидаторы, преобразователи и т.д., просто комментируйте их с помощью @ManagedBean
, @FacesValidator
, @FacesConverter
и т.д. и упакуйте их в JAR обычным способом. Вам нужно только предоставить JSF 2.0-совместимый /META-INF/faces-config.xml
файл в JAR.
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
Таким образом, JSF будет запущен для сканирования классов в JAR для конкретных аннотаций JSF. В качестве альтернативы вы также можете просто зарегистрировать их в JAR faces-config.xml
пути JSF 1.x.
Что касается ресурсов Facelets, просто оставьте их в папке /META-INF/resources
JAR. Это будет рассматриваться так же, как и публичный веб-контент WAR.