2012-02-29 3 views
0

bean属性をui:insert name属性にバインドしようとしています。facelets値バインディング式で挿入/定義

<ice:panelTabSet var="tab" items="#{mainTabsTempl.tabs}">    
    <ice:panelTab label="#{tab.label}"> 
     <ui:insert name="#{tab.tabContentUIName}"> 
      content of #{tab.tabContentUIName} tab 
     </ui:insert>  
    </ice:panelTab> 
</ice:panelTabSet> 

UI:この値は、文字列のような表現を結合参照挿入します。

値バインディング式を渡す方法はありますか?

+0

あなたは仕事に間違ったツールを使用しようとしていると思います。挿入/定義を参照せずに達成しようとしていることを説明してください。 – mrembisz

+0

私は自分の質問を編集しました。私は 'c:forEach'の中に' ui:insert'を使用していますので、変数として "name"属性を渡す必要があります。 – smirnov

+0

このテンプレートはどのように使用しますか?あなたがそれを想像しているように定義するuiを使って投稿する心は? – mrembisz

答えて

1

今、私はあなたが達成しようとしているものを見ています。残念ながら、少なくとも2つの理由で不可能です。まずui:insertはリテラルのみをサポートします。明示的にname属性をチェックし、リテラルでない場合は例外をスローします。 2番目の理由はpanelTabSetがコンポーネントなので、その変数 - あなたのケースの "タブ"はレンダリング段階で利用可能ですが、ui:insert/ui:defineはビュー構築中に実行されるタグハンドラです。

あなたの質問を言い換えて、再度尋ねることができます。私が理解しているのは、一連のファセットを渡して別々のタブとして使うことができる豊富なタブセットテンプレート/コンポーネントが必要なことです。私の推測では、複合コンポーネントを試して、insertFacetf:facetとします。コンポジットコンポーネントは使用していませんが、ここではサポートできません。

+0

はい、それは私が言ったことです。しかし、主な質問は、 'ui:insert'コンポーネント属性でBeanプロパティ値を使用することでした。答えてくれてありがとう。 – smirnov

関連する問題