2011-08-09 23 views
5

我需要避免在刷新時發生雙重POST。所以我使用POST/Redirect/GET模式(faces-redirect=true)和導航處理程序(通過@BalusC),如this post。如何在JSF 2.0中使用該模式時,操作方法返回null(留在同一頁面上)?它甚至有可能,或者我需要使用其他POST/Redirect/GET?我需要保持活動視圖範圍的bean,所以在操作方法中返回相同的視圖(PRG工作)不是解決方案(導致丟失view scope)。當操作方法返回null(留在同一頁)時,JSF 2.0:POST/Redirect/GET模式

視圖test.xhtml:

<h:commandButton action="#{bean.send}"/> 

豆:

@ManagedBean 
@ViewScoped 
class Bean { 
    String send() { 
     // do something... 
     return null; 
    } 

    String send2() { 
     // do something... 
     return "test"; // view scope lost 
    } 
} 
+0

嗨,你可以舉一個你正在試圖解決的使用案例嗎? –

+0

你有沒有想過這個? – edhedges

回答

0

Marioosh。

郵政/重定向/獲取導致兩個生命週期場景:

  • 重定向導致非faces響應(科JSF-2規格的2.1)。

  • 獲取帶有Faces響應的非面孔請求(第2.1.1節)。在這種情況下會創建一個新視圖。

0

默認情況下,某些框架會實施此策略:例如Spring WebFlow。每個提交(POST)後面跟着一個帶有參數「執行」的重定向GET,使Spring能夠找到SAME視圖。 例如:

http://myhost:8080/booking-spring-faces/spring/mypage?execution=e1s2 

我很想找到在JSF工具包一樣Omnifaces從BalusC這個功能!