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

Ara*_*yan 28 validation jsf button jsf-2

我在一个字段上有一个带验证器的表单.我有两个h:commandButtons:Ok和Cancel.当我输入错误的数据并单击取消时,我会收到验证消息.当我点击取消时,我必须做什么验证器不运行?

Bal*_*usC 60

如果您没有使用ajax,或者仍然使用JSF 1.x,并且您确实需要在cancel()方法中调用业务操作(即只是重新加载页面不够),那么您最好的选择是添加immediate="true"到按钮.这样,immediate="true"在处理过程中将跳过所有没有的输入字段.

<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />
Run Code Online (Sandbox Code Playgroud)

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

<h:commandButton value="Cancel" action="#{bean.cancel}">
    <f:ajax />
</h:commandButton>
Run Code Online (Sandbox Code Playgroud)

如果要在此处导航到其他页面,请添加?faces-redirect=truecancel()方法中的结果.

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

<h:button value="Cancel" outcome="previouspage" />
Run Code Online (Sandbox Code Playgroud)

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

也可以看看: