2011-11-15 12 views
0

関連するメニューリンクを使用して関連ページを開くたびにnullにリセットする必要があるバッキングBeanの変数があります。関連するメニューリンクをクリックするたびにバッキングBeanに初期化コードを実行する方法はありますか? Contructorは、メニューリンクが初めてクリックされたときにのみ実行されます。私は、そのbeanがjsfコンテキストに保持され、再作成されないと思います。メニューリンクがクリックされるたびにそのバッキングBeanの新しいオブジェクトが作成されるようにする方法はありますか?ありがとう!バッキングビーンの初期化

答えて

1

リクエストスコープにBeanを置くことはできませんか?

もう1つのオプションは、メニューでsetpropertyactionlistenerを使用することです。メニューがクリックされたら、値を "null"に設定します。

1

次のオプションがあります。

1。 BeanをリクエストスコープのBeanに変更してください。

2。リンクがクリックされるたびに初期化コードを実行するために、バッキングBeanのメソッドを呼び出すためにaction属性を使用して、このような何か:

<h:commandLink action="#{myBean.init}" value="My Link" /> 

そしてmyBean.init()は、初期化コードをあなたの応答のための

+0

感謝が含まれています。私はそれを "request"スコープに変更しようとしましたが、いくつかの検証メッセージは表示されません(理由を見る必要があります)。それ以外は、action = "#{managedbean.init}"を使用したときとは別に、 "viewexpired"例外をスローして、ページが読み込まれる前に関連するメニュー項目をクリックすると、アドレスバーに別のリンクを表示します。他のメニュー項目をクリックしてこのリンクをクリックすると、適切に開きます。 –