比較的簡単にできると思われることをやろうとしています。基本的に、次のようなオブジェクトがあります。
public class Attribute {
public UIInput getInput();
public void setInput(UIInput input);
public String getName();
public void setName(String name);
}
Bean にこれらのリストがあり、リストを反復処理して表示しようとしています。
これが例です(p:dataTableも試しました)
<ui:repeat value="#{someBean.attributes}" var="a">
<div>#{a.name} <ui:fragment binding="#{a.input}" /> </div>
</ui:repeat>
ただし、ui:fragment はそのようには機能しません。Request Value ステージの前にバインドされます (明らかに)。また、バッキング DataTable を作成してその方法でデータを追加しようとしましたが、この方法ではカスタム行を追加できないようです:
for (Attribute attr : bean.getAttributes) {
Row r = new Row();
r.setCell(0, attr.getName());
r.setCell(1, attr.getInput());
table.getRows().add( r );
}
死ぬほど探しましたが、何も見つかりません!別のコンポーネントの単なるラッパーである独自のコンポーネントを作成することは避けたかったのですが、その道をたどらなければならない場合はそうします。