如何在 JSF 中取消没有验证阶段的表单?

How to cancel form without validation phase in JSF?

我有 xhtml 表单,其中包含两个按钮:"OK" 和 "Cancel"。这两个按钮都调用 @ViewScoped 托管 bean 的方法(例如,accept() 和 cancel())。 此外,xhtmlviewParam 和一些验证。

处于managedBean状态,由布尔变量edit控制。方法 canceledit 变量转换为 false.

问题是:如何在没有验证步骤的情况下调用 managedBeancancel() 方法?比如说,我按下 "New record" 按钮并改变了主意。现在我想取消编辑操作,当我按下 "Cancel" 按钮时 - 出现验证错误,但 managedBean 将状态更改为浏览(变量 edit 变为 false)。我唯一需要的是隐藏验证错误消息,或者在 POST 请求期间跳过验证阶段。如果我使用 GET 请求,我担心 viewParam 迷路,因为视图将被更新。

有什么方法可以跳过 JSF 中的验证阶段吗?

感谢您浪费时间。

If I use GET request, I am afraid that viewParam get lost, because view will be updated.

使用 GET 执行整页刷新是正确的方法(前提是您有一个 @ViewScoped bean)。要解决上述问题,只需告诉 <h:link><h:button> 包含视图参数即可。

<h:button value="Cancel" includeViewParams="true" />

另请参阅:

  • Reset input fields without executing validation
  • Automatically include view parameters in URL