私は、古いコード ベース (Struts 1) を持つアプリケーションに取り組んでおり、現在、JSF を使用して新しいコード ベースを構築し、残りの (古い) アプリケーションと一緒に実行しています。アプリケーション全体にある古いデータテーブルは、ページネーションについて次のことを示しています。
"50 エントリの 1 から 20 を表示しています"
新しい PF データテーブルを同じ方法で表示するように依頼されました。
encodePaginatorMarkup
primefacesDataRenderer
クラスのメソッドをオーバーライドすることで、最初のページでこれを機能させることができました。ページが変更されたときに問題が発生します。このメソッドは、ページネーションを更新するために呼び出されていません。このメソッドが呼び出されなくても、現在のページ (およびその他すべて) が通常のページネーション テンプレートで更新されるため、これは混乱を招きます。
ページを変更するときに返される AJAX 応答を確認しましたが、ページネーションを更新するために HTML が生成されていません (合計数のみ)。これは、すべてが JS で処理されていると私に信じさせます。
私が現在実装を考えている方法はf:ajax
、ページを変更するために を使用し、テーブルoncomplete
の値を渡しwidgetVar
、JS でそのデータテーブルのプロパティに基づいてページネーションを更新する共通のメソッドを持つことです。これはやり過ぎのように思えます。必要がなければ、コードを過度に複雑にしたくありません。
これについてもっと良い方法はありますか?他に提案はありますか?