2012-05-25 8 views
6

jsfではこれが可能ですか?JSF 1.2:JSFビュー内に再利用可能なコンポーネントを作成することはできますか?

<ui:composition> 
    <x:reusableCode id="editScreen">InnerHtml ... </x:reusableCode> 
    code... 
    <x:use component="editScreen"/> 
</ui:composition 

私は私自身のコンポーネントを作成し、JSFタグライブラリに登録することができます知っているが、私は唯一のJSFビューファイル上で再利用可能なHTMLを必要としています。

+0

JSF 2.0を使用していますか? –

+0

申し訳ありませんが、これを要約に追加するのは忘れてしまいます。私は1.2を使用します – Daggeto

答えて

4

Facelets 1.xでは、この目的のためにタグファイルを作成できます。

これは基本的なキックオフの例です。 /WEB-INF/tags/some.xhtmlを作成します。

<ui:composition 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
> 
    <h:outputText value="#{foo}" /> 
</ui:composition> 

/WEB-INF/my.taglib.xmlでそれを定義します。

<?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://example.com/jsf/facelets</namespace> 
    <tag> 
     <tag-name>some</tag-name> 
     <source>/WEB-INF/tags/some.xhtml</source> 
    </tag> 
</facelet-taglib> 

/WEB-INF/web.xmlでそれを登録します

<context-param> 
    <param-name>facelets.LIBRARIES</param-name> 
    <param-value>/WEB-INF/my.taglib.xml</param-value> 
</context-param> 

(あなたが複数の持っているノート、それらを分離するために、セミコロン;を使用します)

最後にメインページのテンプレートに宣言してください。

<ui:composition 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:my="http://example.com/jsf/facelets" 
> 
    <my:some foo="value1" /> 
    <my:some foo="value2" /> 
    <my:some foo="value3" /> 
</ui:composition> 

より高度な例

はここで見つけることができます: How to make a grid of JSF composite component?注:JSF 2.0をターゲットに、しかし、上記の例に基づいて、小さな変更でそれはFaceletsの1.xの上のように良い作品

+0

このアプローチのおかげで、ありがとうございましたが、私は、タグ登録なしで、1つのjsfファイルの中に再利用可能なコンポーネントを作成する方法があると思いました。 :) – Daggeto

+0

これは 'my.taglib.xml'の' /WEB-INF/tags/some.xhtml '要素を除いて動作します。私は ' tags/some.xhtml'に変更して動作させる必要がありました。 – acdcjunior

関連する問題