JSF 2、PrimeFacces 3.4、および CDI を使用しています。私は 2 つのページを持っています:page1.xhtml
とpage2.xhtml
. 各ページには独自のマネージド Bean があります:Page1Bean
およびPage2Bean
.
page1.xhtml
には<p:remoteCommand>
がactionListener
表示されますpage2.xhtml
。
page2.xhtml
下に 3 つのコンポーネント<ui:include>
と 1 つの送信ボタンが含まれています。これら 3 つのコンポーネントはそれぞれ、異なるマネージド BeanComponent1Bean
にバインドされComponent2Bean
ていComponent3Bean
ます。送信ボタンが表示されますpage1.xhtml
。
これら 3 つComponentXBean
の s には、@PostConstruct
いくつかの初期化コードを含むメソッドがあります。これらの Bean で次のスコープを試しました。
@SessionScoped
: 単一の送信操作ではすべてが正常に機能します。私がそれを繰り返すと、これらのBeanは@PostConstruct
セッションスコープであるため、再初期化されません。@ViewScoped
:@PostConstruct
複数回呼び出されます。@ConversationScoped
: と同じ動作@ViewScoped
。
@PostConstruct
ビューと会話のスコープで が複数回呼び出されるのはなぜですか? サブミット操作ごとに1回だけ呼び出されるようにするにはどうすればよいですか?