Primefaces "reset fail" 示例

Primefaces "reset fail" example

Primefaces 展示页面上的文档提供了一些 ajax 和非 ajax 重置按钮的示例。一个叫做"reset fail",可以找到here。它只涉及调用一个将所有相关的支持 bean 字段设置为 null 的 actionListener。

我尝试了 "reset fail",它似乎可以完成任务。那么为什么它是一个 "fail" 示例,为什么文档说它 "won't work"?

谢谢!

好的试试这个...

  1. 在 Showcase 演示页面的第一个字段中输入 "a",在第二个字段中输入 "bbb",然后按 "Submit"。您将收到验证错误。

  2. 现在按 "Reset Fail"。看到第一个字段仍然以红色突出显示,因为验证失败了吗?

  3. 现在按 "Reset Tag",您将看到红色突出显示的字段消失。

所以区别在于重置失败不会重置验证失败,而重置标签会重置。

最后,actionListener=resetValues="true" 的组合对我有用,即:

<p:commandButton value="Reset" actionListener="#{otb.resetFail}" process="@this" update="@form" resetValues="true" style="margin-left:20px;"/>

没有 actionListener,我的字段无法正确清除。但是需要 resetValues 属性来解决验证问题。我从 this post.

中的 StanL 回答中得到了这个想法

还有一件事 - 与 PF 演示中的示例相反,我的 bean 的 "resetFail" 方法只是清空字段。它不会调用 PrimeFaces.current().resetInputs("form:panel");(我没有那个库)。尽管如此,它仍然运行良好。