JSF 1.2のfaceletsコンポーネント(ui:composition
)がたくさんあります。私たちは、彼らがJSF 2の複合コンポーネントになりたいとしたい複数のJSF2コンポジットコンポーネントライブラリを1つのネームスペースにバンドルする方法
<?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>
:彼らは、彼らが1つの名前空間の下にタグライブラリ記述子内に登録されている
facelets
/tags
/inputfields
/layout
/core
/...
...このような異なるフォルダに整理されていそれらを別々のフォルダにまとめる。 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>
は移動せず、当社の複合コンポーネントのすべてに同じ名前空間を使用する方法はありますそれらを1つのフォルダに入れますか?