点击特定按钮时如何跳过验证? - 代码日志

点击特定按钮时如何跳过验证?

我有一个表单与验证器在一个字段。我有两个h:commandButtons:Ok和Cancel。当我输入错误的数据并单击取消我得到一个验证消息。当我点击取消时,该验证器不能运行什么?
如果您没有使用ajax,或者仍然在JSF 1.x上,并且您真的需要在cancel()方法中调用业务操作(即重新加载页面是不够的),则最好的方法是立即添加=“true”到按钮。这样,在处理中将跳过没有immediate =“true”的所有输入字段。

<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />

在JSF 2.x上,更好的是通过< f:ajax>提交表单,默认情况下只处理@th而不是@form。

<h:commandButton value="Cancel" action="#{bean.cancel}">
    <f:ajax />
</h:commandButton>

如果要在此处导航到另一个页面,请在cancel()方法中添加?faces-redirect = true到结果。

或者,如果您实际上不需要调用任何业务操作,那么只需使用< h:button>其中您直接指定(隐式)导航案例结果。

<h:button value="Cancel" outcome="previouspage" />

这将基本上通过GET请求重新加载页面。 < h:button>在JSF 1.x中不存在,但也可以使用纯HTML JS。

也可以看看:

> Why was “immediate” property added to the EditableValueHolders?
> How to navigate in JSF? How to make URL reflect current page (and not previous one)
> How to let validation depend on the pressed button?

http://stackoverflow.com/questions/6062923/how-to-skip-validation-when-a-specific-button-is-clicked

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:点击特定按钮时如何跳过验证?