2

Webアプリケーションのモジュールでは、中央にデータテーブルが表示され、右側に選択したレコードの詳細が表示されます。ユーザーがマスターテーブルのレコードを選択するたびに、詳細ページが更新され、選択したレコードの詳細が表示されます。今、私たちは次の問題を抱えています:

  1. ユーザーがマスターテーブルでレコードを選択すると、データが詳細領域に表示されます。
  2. ユーザーが詳細データを変更し、保存をクリックします。
  3. 検証(Bean検証)エラーが発生し、ユーザーにはエラーメッセージが表示されます)。
  4. 間違った入力を修正する代わりに、ユーザーはマスターテーブルの別のレコードを選択します。
  5. エラー状態のないすべてのフィールドは、新しいレコードのデータで更新されます。前に間違っていたフィールドは、古いデータを示しています。古いレコードのデータは、ユーザーがページを更新するまで保持されます。

この問題を解決する方法はありますか?Primefaces拡張機能のpe:resetInputコンポーネントを見ましたが、このコンポーネントが機能するにはUICommandコンポーネントが必要です。ユーザーがマスターテーブルの別のエントリを選択した場合に機能するソリューションが必要です。

4

1 に答える 1

2

ResetInputAjaxActionListenerこれには、OmniFacesのを使用できます。として登録する<f:actionListener>だけでなく、グローバルにとして登録することもできますPhaseListener

参照:


あなたがそれをあなた自身の手で取るつもりなら、あなたは基本的にあなた自身でコードを書く必要があります。それは基本的に次のことをします:

  • 呼び出しアクションフェーズ中にUIInput、ajaxリクエストによって実行/処理されないレンダリングされるコンポーネントを取得します。
  • resetValue()それらにメソッドを呼び出します。

参照:

于 2012-07-16T20:09:09.937 に答える