iは、クライアントごとの課金対象サービスのリストを持っていると私は、ユーザーが実際に課金されなければならないものを選択することができ、テーブルを構築しようとしている:JSF 2:P内部のIDが重複:データリスト
<p:dataList value="#{billController.billings}" var="billings">
<p:dataTable value='#{billings.billablesDataModel}' var='item' selection="#{billings.toBill}">
<f:facet name="header">
<h:outputText value="#{billings.client.id}" />
</f:facet>
[...]
</p:dataTable>
</p:dataList>
問題は、すべてのdataTableがJSFによって自動的に割り当てられる同じID属性(j_idt9:j_idt13:0:j_idt14
)でレンダリングされるということです。私はこれが原因で選択が機能しないと思っています。 (バッキングBean billings.toBill
が更新されていない/空のままです。)
dataTable
のID属性を設定しようとしていた
:
:<p:dataTable id="#{billings.client.id}" ...>
しかし、私は次のエラーを取得します
java.lang.IllegalArgumentException: Empty id attribute is not allowed
(私はデバッグの目的のためにh:outputText
から右出力を得るよう#{billings.client.id}
は間違いなくユニークなクライアントのIDに設定されている。)
これを修正するお手伝いをしてもらえますか?
は、私は、Tomcat上でJSFクロサギ科2.1.1とPrimeFaces 3.2を使用しています6.
これは私のために同様の問題で働いた。 DataListに列を追加すると(この例で使用されているDataTableではなく、列が必要と思われます)しかし、それは私が見るところでは、DataListセクションのどこにでもユーザガイドで言及されていません。 –
優秀、これは働いた!私はp:列が欠けているデータリストショーケースの例に従った。私はまた、ユーザーのガイドでそれを見つけることができませんでした。とにかく、ありがとう! – jfs