当jsf验证失败时,跳过ajax

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当jsf验证失败时,跳过ajax相关的知识,希望对你有一定的参考价值。

我有这个代码:

<p:inputText id="abc"  value="#{myBean.name}" >

    <f:validator validatorId="mandatoryInput" />

    <p:ajax  event="change"  update="..."  listener="#{myBean.myFunction()}" />

</oct:inputTextUpper>

当Validator抛出一个新的ValidatorException时,会跳过。即使验证失败,是否可以启动myFunction()?谢谢 :)

答案

这是默认的JSF行为。作为一种解决方法,你可以使用f:event:

<p:inputText id="abc" value="#{myBean.name}">
    <f:validator validatorId="mandatoryInput" />
    <p:ajax  event="change"  update="..."  listener="#{myBean.myFunction}" />
    <f:event type="preRenderComponent" listener="#{myBean.callMyFunction}" />
</p:inputText>

在MyBean中添加以下方法:

public void callMyFunction(ComponentSystemEvent e) {
    UIInput input = (UIInput) e.getComponent();
    if (!input.isValid()) {
        myFunction();
    }
}

以上是关于当jsf验证失败时,跳过ajax的主要内容,如果未能解决你的问题,请参考以下文章

链接中的 URL 片段和 JSF 中的 ajax 重定向

在与 JSF 和 Apache Shiro 的 Ajax 交互中处理身份验证

验证通常失败时 JSF 中的条件样式

JSF 跳过没有立即=真的必需验证

当页面验证失败时,如何禁用我的 ASP.NET AJAX ConfirmButtonExtender?

JSF:在验证成功或失败时有条件地更新