在JSF上实现PRG

  • 本文关键字:PRG 实现 JSF java jsf
  • 更新时间 :
  • 英文 :


我目前正在研究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参数添加到(隐式导航(结果值,这也可以通过自定义的可配置导航处理程序来完成。

最新更新