2

標準コンポーネントのラッパーとして機能し、いくつかの共通属性の値を定義するカスタム タグを作成しようとしています。

たとえば、カスタムタグは次のようになります

<ui:component xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jstl/core">

   <rich:datascroller fastControls="false" fastStep="false" maxPages="20" id="#{value}"/>

</ui:component>

次に、次のようなデータスクローラーコンポーネントが必要になるたびに、このタグを使用できるようになります

<my:dataTable id="componentId"/>

私の質問は、カスタムタグに、それぞれを明示的に指定せずに jsf コンポーネントに「転送」される属性を提供できるかどうかです。たとえば、次のカスタム コンポーネントの使用を検討してください。

<my:dataTable id="componentId" pagesVar="books" stepControls="true"/>

そしてこれ

<my:dataTable id="componentId" pagesVar="items" renderIfSinglePage="false"/>

属性 pagesVar、stepControls、renderIfSinglePage を rich:datascroller コンポーネントに渡す必要があります。私はこのようなことができることを知っています

<rich:datascroller pagesVar=#{pagesVar ? pagesVar : ''} stepControls=#{stepControls ? true: false}/>

しかし、それぞれを指定せずにすべての属性を渡す方法があるかどうか疑問に思っています

4

1 に答える 1

1

しかし、それぞれを指定せずにすべての属性を渡す方法があるかどうか疑問に思っています

いいえ、タグ属性はいかなる形式の継承もサポートしていません。

ただし、特定の例をさらに単純化できます。

<rich:datascroller pagesVar="#{pagesVar}" stepControls="#{stepControls}" />
于 2012-04-24T12:35:08.460 に答える