JSF 2.0 を使用しています。タグファイルを使用してカスタム JSTL タグを作成しましたが、それは JSP で正常に機能していました。しかし、Facelets でもカスタム JSTL タグを使用したいと考えています。Faceletsでタグファイルを作成することは可能ですか?
6402 次
1 に答える
17
「カスタムJSTLタグ」は正直意味がありません。この用語はまったく意味がありません。JSTLはすでにそれ自体がtaglibです。JSTL wikiページの紹介段落を注意深く読んで、JSTLが実際に何であるかを学んでください。あなたはおそらく実際には「カスタムJSPタグ」を意味していました。もちろん、Faceletsでは機能しません。これはJSPとは完全に異なるビューテクノロジであり、実際には非推奨のJSPの後継です。
「カスタムJSPタグ」の例えは、「カスタムFaceletsタグ」、またはより一般的には「Faceletsタグファイル」です。それはかなり単純で、インクルードファイルと同じ構文に従うことができます。
/WEB-INF/tags/some.xhtml
:
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets">
Hello World
...
<ui:insert /> <!-- This inserts tag body, if necessary. -->
</ui:composition>
次のように登録し/WEB-INF/example.taglib.xml
ます。
<?xml version="1.0" encoding="UTF-8"?>
<facelet-taglib
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"
version="2.0">
<namespace>http://example.com/jsf/facelets</namespace>
<tag>
<tag-name>some</tag-name>
<source>tags/some.xhtml</source>
</tag>
</facelet-taglib>
これは次のように登録さ/WEB-INF/web.xml
れます。
<context-param>
<param-name>javax.faces.FACELETS_LIBRARIES</param-name>
<param-value>/WEB-INF/example.taglib.xml</param-value>
</context-param>
(ファイルがのJARのフォルダにあるweb.xml
場合は、の登録は不要であることに注意してください)*.taglib.xml
/META-INF
/WEB-INF/lib
最後に、次のようにテンプレートで使用します。
<html ... xmlns:my="http://example.com/jsf/facelets">
...
<my:some />
参照:
于 2013-02-07T13:19:26.080 に答える