2011-08-10 79 views
0

我有一些由netbeans嚮導'實體類'的JSF頁面生成的代碼。 對於那些不使用netbeans的人,我將簡要描述嚮導的功能。 它創建一個JSF頁面List.xhtml,它包含一個固定大小爲10行的數據表和兩個用於滾動其內容的命令鏈接(prev 10和next 10)。 JSF頁面使用帶有會話範圍的managedbean,並且上述命令鏈接返回字符串'List'。 如果我將託管bean範圍更改爲@viewscoped,那麼每次我推送一個commandlink時都會重新創建它。據我所知,這是一個奇怪的行爲,因爲該視圖實際上並沒有改變(它總是List.xhtml),我會期望一個聰明的視圖範圍機制。Commandlink動作和@viewscoped奇怪的行爲

然後我改變了與一個新的一個相同的事情,但返回void的命令鏈接相關聯的行動。現在@viewscope機制運作良好,但我不知道這是正確的使用操作方法與簽名這樣

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

我擔心的是一個不同的JSF實現可以在impredictable方式與這一種行爲的行動。

感謝 菲利波

回答

0

你在public String doSomething()什麼樣的回報?

如果你返回null(或一個空字符串),它不應該重新創建視圖。

如果返回導航的情況下,那麼該視圖是重新創建,無論是同你目前英寸

+0

如前所述以上'公共字符串DoSomething的()'返回「清單」,這是活動視圖的名稱。我明白你說什麼,但想知道它是否安全(考慮不同JSF實現之間的兼容性)返回空字符串,如果它不同於使用'public void doSomething()' – Filippo