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回だけ呼び出されるようにするにはどうすればよいですか?