CRUD 操作の実装についてサポートが必要です。アプリケーションにオブジェクトのテーブルが含まれています。各オブジェクトは、プロパティ (値) のリストによって記述されます。プロパティ タイプに応じて、1 つのプロパティがカスタム JSF エディタで変更されます。
ユーザーが新しいアカウントを追加すると、編集者のリストがオブジェクトのタイプから決定され、custom:include
タグを使用してフォームに表示されます。このカスタム タグは、エディタを動的に含めるために使用されます<custom:include src="#{editor.component}">
。component プロパティは、JSF エディターの場所を指します。
すべてのエディターには、インターフェースを実装し、クラスValueHolder
を継承するマネージド Bean があります。AbstractEditor
AbstractEditor にはupdateEditorメソッドが含まれています。
public interface ValueHolder {
String EDITOR_VALUES = "editorValues";
public Object getValue();
}
エディター名をキー、エディター値を値として、セッション マップを使用します。ユーザーがプロパティを変更すると、 updateEditor メソッドが呼び出され、エディターの新しい値でマップが更新されます。
問題は、エディターの背後にある Bean のスコープにあります。@SessionScoped Bean を使用すると、エディターを初期化するコードが再度呼び出されず、追加/編集アクションを処理できません。@SessionScoped は、追加に対してのみ機能します。@RequestScoped を試してみましたが、Bean が頻繁に呼び出され、それが本当に良いかどうかわかりません。
ナビゲーションには JSF2、PrimeFaces 3.0.M4、および Spring Web Flow を使用しています。