0

RichFaces 4.5.8、CDI Bean のデルタスパイク、および EAP 6.3 で実行される EJB を使用した JSF アプリケーションがあります。2 つのテーブルといくつかの popupPanels を含むページがあります。このページは、WindowScope の CDI Bean コントローラーによってサポートされています。popupPanels には多くのコントロールとアクションがあるため、ページはますます大きくなります。

xhtml ページは複合コンポーネントと正常に動作する ui:include によって分離されていますが、CDI Bean はますます大きくなります。popupPanels のアクション メソッドを他の CDI Bean に移動したいと考えていますが、1 つのページに複数の windowScoped CDI Bean があるのは奇妙に思えます。大きな CDI Bean を分割するにはどうしますか?

よろしくお願いします

4

1 に答える 1

1

@DarWhi のコメントは正しいです。ページで必要な数の WindosScoped Bean を使用できます。それらはすべて 1 つのウィンドウでのみ有効です。JSF ページで単一の Bean のみを使用する必要があるという制限はありません。そのようなすべての Bean に @Named を使用して名前を付けるだけです。

ウィンドウごとに 1 つの WindowScoped Bean のみを使用する場合でも、ロジックを複数の Bean に分割できます。すべての子 Bean を WindowScoped Bean に注入し、ドット表記を使用して子 Bean のアクションを参照します#{viewScopedBean.childBean.action。変数を使用して childBeans への参照を保存し、JSF のコードを短くすることができます。この回答を参照してください。

于 2015-08-30T06:27:08.390 に答える