jsf
  • jsf-2
  • primefaces
  • facelets
  • mojarra
  • 2012-04-24 32 views 0 likes 
    0

    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.

    答えて

    4

    :ユーザーガイドに記載されているデータリストの内容の列。

    +0

    これは私のために同様の問題で働いた。 DataListに列を追加すると(この例で使用されているDataTableではなく、列が必要と思われます)しかし、それは私が見るところでは、DataListセクションのどこにでもユーザガイドで言及されていません。 –

    +0

    優秀、これは働いた!私はp:列が欠けているデータリストショーケースの例に従った。私はまた、ユーザーのガイドでそれを見つけることができませんでした。とにかく、ありがとう! – jfs

    0

    ui:repeatなく経由billController.billingsをループp:dataList経由の場合:あなたはPを使用する必要が

    <ui:repeat var="billings" value="#{billController.billings}"> 
        <p:dataTable value="#{billings.billablesDataModel}" var="item" selection="#{billings.toBill}"> 
         [...] 
        </p:dataTable> 
    </ui:repeat> 
    
    +0

    ui:repeatはまったく同じ結果を返します。 – jfs

    関連する問題