0

紛らわしいタイトルで申し訳ありません。これ以上のタイトルが思いつきませんでした。

次の問題があります。

ビューにリストが表示されていますがdataTable、すべて正常に動作します。これは支払いのリストのようなもので、支払いの値、フォーム、その他の詳細があります。

今、クライアントは、支払いフォームで注文し、小計を追加することを望んでいます。私が考えた唯一の方法は、新しいアイテムをリストに追加して、それらが に表示され、正常に機能するようにするdataTableことです。

問題は、これらの値は表示目的でのみ存在する必要があるため、何らかの処理のためにリストをサーバーに送り返すたびに、それらの値を無視する必要があることです。すべてのコードを変更したくないので、処理のためにそれらを削除し、ビューに戻るときにもう一度追加すると思いました(処理後にも更新する必要があるため、一貫性のない値を持たない)。

それを行うための最良の方法は何ですか?すべてのポイントを特定し、メソッドを呼び出しますか? おそらく、ジョブのサーブレット フィルターを作成しますか? 助言がありますか?

テーブルがどのように見えるかの例を次に示します。

データ表

4

1 に答える 1

1

リストの一部としてではなく、列の「フッター」ファセットとして表示します。フッターは行ごとではなく、テーブルごとに評価されるため、反復リストではなく、バッキング Bean 自体のプロパティに安全にバインドできます。

例えば

<h:dataTable value="#{bean.payments}" var="payment">
    ...
    <h:column>
        #{payment.price}
        <f:facet name="footer">
            #{bean.subtotalPaymentPrice}
        </f:facet>
    </h:column>
</h:dataTable>

更新: 質問の 1000 語よりもはるかに優れた要件を説明する役立つスクリーンショットを含む質問の更新によると、いいえ、これは標準の JSF では「すぐに使える」ものではありません。質問の履歴に基づいて、PrimeFaces を使用しているか、少なくともそれに慣れているので、<p:subTable>役に立つかもしれません。ショーケースの例も参照してください。

于 2013-04-16T12:59:45.767 に答える