【问题标题】:How to cancel form without validation phase in JSF?如何在 JSF 中取消没有验证阶段的表单?
【发布时间】:2015-10-25 06:30:43
【问题描述】:

我的xhtml 表单有两个按钮:“确定”和“取消”。两个按钮都调用@ViewScoped 托管bean 的方法(例如accept() 和cancel())。 此外,xhtml 具有viewParam 和一些验证。

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

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

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

感谢您浪费时间。

【问题讨论】:

  • 也许您想使用immediate 属性? 2.bp.blogspot.com/-txWIIU0O_vM/Ujk6Hu2mYmI/AAAAAAAAAEI/…。请注意,IIRC 应用了值 ,因此在 HTML 表单中,您将看到您编写的值(如果您在日期字段中编写 foo,则不会引发错误,但您会在该字段中再次写入foo)。

标签: validation jsf-2 jsf-2.2


【解决方案1】:

如果我使用GET请求,恐怕viewParam会丢失,因为view会被更新。

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

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

另见:

【讨论】:

  • 所以,我只能使用includeViewParams = "true" 而不是在outcome&lt;h:button&gt; 参数中添加参数?感谢您的回答。
  • 结果默认为当前视图。我收集到只有当前视图需要通过 GET 刷新。
  • 非常感谢。你 JSF 大师!
猜你喜欢
  • 2012-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多