p:commandButton不会对验证错误

时间:2015-07-10 10:39:13

标签: validation jsf primefaces cancel-button

所以我有这个取消按钮:

<p:commandButton id="cancelButton" value="Cancel" action="#{myBean.doOnCancel}" onclick="dialogWidget.hide();" />

取消按钮所在的小部件(<p:dialog>)具有日期字段。每次打开对话框时,输入一些有效值并单击取消 - 执行myBean.doOnCancel并隐藏对话框。 现在,每当我打开对话框时,输入一个无效值,例如单个字母而不是日期,我会收到一条验证消息,说明日期格式不好,然后单击取消 - 对话框被隐藏但操作中定义的方法({ {1}})未执行。 知道为什么吗?

1 个答案:

答案 0 :(得分:4)

当处理表单提交期间出现验证错误时,JSF将按照规范不调用操作方法。 <p:commandButton>默认处理整个表单,如<p:commandButton process="@form">。您只想将其限制为按钮本身。

<p:commandButton ... process="@this" />

对话框已成功隐藏,因为它在提交表单之前完全由客户端执行,与操作方法的结果无关。

另见: