1

ELを使用して子リストを取得する方法はありますか?

<ul>
   <ui:repeat value="#{Magic El expression}" var="children" >
      <li>
      <p> #{children.title} *</p>
      </li>
   </ui:repeat>
</ul>
<div>
 <cc:insertChildren />
</div>

* perhaps #{children.attrs.title} I don't know?

ここでやろうとしているのは、Tab 複合コンポーネントを作成することです。Primefaces などのライブラリが tabview などを提供することは知っていますが、jquery 機能が拡張されているため、独自のライブラリを作成する必要があります。さらに、特定のテンプレートを使用しています。タブのリストを作成するには、タブのタイトルを取得する必要があります。タブは子コンポーネントですとにかく属性を反復して取得できますか? つまり、primefaces はどういうわけかそれを行います。

HTML マークアップを見ると、各子タブビュー コンポーネントのタイトルを含む順序付けられていないリストが作成されます。それはどのように実装されていますか?

4

2 に答える 2

2

表示するマークアップが複合コンポーネント内にある場合(おそらくそうだと思います)、その子にアクセスできるようにする式は次のとおりです。

#{component.getCompositeComponentParent(component).children}

少し関連する質問:JSF2で、複合コンポーネントに子があるかどうかを知る方法は?

于 2011-02-15T10:16:37.013 に答える
0

複合コンポーネントが次のインスタンスである場合: javax.faces.component.UINamingContainer これを試してください:

    <c:forEach items="#{cc.children}" varStatus="loop" var="child">
      loop[#{loop.index}]: #{child.getAttributes().get('title')}
    </c:forEach>

#{cc}またはのようにページに出力することにより、どのインスタンスが JSF 変数であるかを簡単にデバッグできます。#{component}

乾杯!

于 2016-09-21T15:14:07.513 に答える