У нас есть набор компонентов Facets JSF 1.2 (ui:composition
).Они организованы в разные папки, подобные этой ...
facelets
/tags
/inputfields
/layout
/core
/...
Они зарегистрированы в дескрипторе библиотеки тегов в одном пространстве имен:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://www.ourcompany.de/jsf</namespace>
<tag>
<tag-name>desktop</tag-name>
<source>./facelets/tags/layout/desktop.xhtml</source>
</tag>
<tag>
<tag-name>inputField</tag-name>
<source>./facelets/tags/inputfields/inputField.xhtml</source>
</tag>
...
</facelet-taglib>
Мы хотим, чтобы они стали составными компонентами JSF 2и хотел бы сохранить их в отдельных папках.По соглашению JSF 2 делает их доступными как составные компоненты, если они перемещаются в папку /resources
.Но для использования компонентов в представлении необходимо использовать разные пространства имен для каждой подпапки.
К сожалению, что-то вроде следующего не работает, поскольку может быть объявлено только одно имя составной библиотеки:
<facelet-taglib version="2.0" 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-facelettaglibrary_2_0.xsd">
<namespace>http://ourcompany.de/jsftags</namespace>
<composite-library-name>components/input</composite-library-name>
<composite-library-name>components/core</composite-library-name>
<composite-library-name>components/layout</composite-library-name>
</facelet-taglib>
Есть ли способ использовать одно и то же пространство имен для всех наших составных компонентов, не перемещая их в одну папку?