我目前正在研究JSF。在过去,当使用Spring和Struts时,每当我做了一些可能更新模型的事情。
在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中有一种替代方案可以解决这些情况谢谢
<redirect/>
是使其成为PRG的正确方法之一。
其他方法包括在bean操作方法中手动调用ExternalContext#redirect()
,或者(仅在JSF 2.x中(将faces-redirect=true
参数添加到(隐式导航(结果值,这也可以通过自定义的可配置导航处理程序来完成。