Вы можете поместить общие ресурсы в папку /META-INF/resources
JAR, которая должна рассматриваться как папка /WEB-INF/resources
WAR.
Например,
CommonWebProject
|-- META-INF
| |-- resources
| | `-- common
| | |-- css
| | | `-- some.css
| | |-- js
| | | `-- some.js
| | |-- images
| | | `-- some.png
| | |-- components
| | | `-- somecomposite.xhtml
| | |-- someinclude.xhtml
| | `-- sometemplate.xhtml
| |-- faces-config.xml
| `-- MANIFEST.MF
:
Ресурсызатем JAR доступны следующим образом:
<... xmlns:common="http://xmlns.jcp.org/jsf/composite/common/components">
<h:outputStylesheet library="common" name="css/some.css" />
<h:outputScript library="common" name="js/some.js" />
<h:graphicImage library="common" name="images/some.png" />
<common:somecomposite />
<ui:include src="/common/someinclude.xhtml" />
<ui:composition template="/common/sometemplate.xhtml" />
...
Если вы также хотите запустить сканер аннотаций JSF2, чтобы вы могли поместить @ManagedBean
, @FacesValidator
, @FacesConverter
и консорты в этом проектеа затем создайте файл /META-INF/faces-config.xml
, совместимый с JSF2:
<?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>
Средство распознавания ресурсов Facelets необходимо только в том случае, если ресурсы по какой-то причине находятся не в /META-INF/resources
или если вы не используете сервлет3.0, но 2.5, или когда вы используете более раннюю версию JBoss / JSF, в которой есть ошибки в разрешении ресурса META-INF.См. Также Как создать модульное приложение JSF 2.0? для конкретного примера.