2011-07-04 59 views
2

我目前正在調查JSF的工作。 在過去,當使用Spring和Struts時,我總是會做一個PRG(Post-Redirect-Get),只要我做了一些可能更新模型的東西。在JSF上實現PRG

在JSF中,我讀到框架內部提出了一個前向請求。那麼是否安全 假設我應該在可能更新模型的事務中添加重定向?例如

我的用例。我有一個在購物車中顯示產品的JSP,用戶可以執行付款交易。 我不希望他們支付兩次,所以我想執行重定向

<navigation-rule> 
    <from-view-id>/viewCart.jsp</from-view-id> 
    <navigation-case> 
     <from-outcome>pay</from-outcome> 
     <to-view-id>/successPay.jsp</to-view-id> 
     </redirect> 
    </navigation-case> 
</navigation-rule> 

我擔心用戶使用他們的後退按鈕或點擊刷新瀏覽器?

我的想法是否正確,或者在JSF中有這樣的替代方案 謝謝。

回答

1

是的,加入<redirect/>是使其成爲PRG的正確方法之一。

的其他方式涉及手動豆動作方法調用ExternalContext#redirect(),或(在僅JSF 2.x的)加入faces-redirect=true參數來(隱含的導航)的結果值,這也可以通過一個custom configurable navigation handler完成。

+0

非常感謝您的幫助! –

+0

不客氣。 – BalusC