2011-08-10 5 views
0

私はいくつかのコードは、netbeansウィザード 'エンティティクラスからのJSFページ'によって生成されています。 ネットビーンズを使用していない人には、ウィザードの機能について簡単に説明します。 JSFページList.xhtmlを作成します。List.xhtmlには、10行の固定サイズのデータ​​テーブルと、内容をスクロールするための2つのコマンドリンク(10以前と10)が含まれています。 JSFページでは、セッションスコープを持つマネージドビーンを使用しています。上記のコマンドリンクは、文字列 'List'を返します。 マネージドBeanスコープを@viewscopedに変更すると、コマンドリンクを押すたびに再作成されます。ビューは実際には変わらないので(私は常にList.xhtml)、私はスマートビューのスコープのメカニズムを期待していたので、私によればそれは変な動作です。Commandlinkアクションと@viewscoped奇妙な振る舞い

コマンドリンクに関連付けられたアクションを、同じものを実行するが、voidを返す新しいものに変更しました。今@viewscopeメカニズムはうまく動作しますが、私はこの

public void doSomething() 
// instead of 
public String doSomething() 

のような署名でアクションメソッドを使用することが正しいことを確認しないんだけど私の関心異なるJSFの実装は、その種類とimpredictableな方法で行動することができるということです行動のあなたはpublic String doSomething()に戻るん何

おかげ フィリッポ

答えて

0

null(または空のString)を返す場合、ビューを再作成しないでください。

ナビゲーション・ケースを返す場合、ビューは関係なく、それはあなたが現在していることと同じであるかどうか、再作成です。

+0

である、 '公共の文字列のdoSomething()'を返す「一覧」上述したようにアクティブビューの名前私はあなたが言うことを理解していますが、(異なるJSF実装間の互換性を考慮して)空の文字列を返すことが安全かどうかを知りたい場合は、 'public void doSomething()' – Filippo