如何在PrimeFaces oncomplete中触发args.validationFailed

Sei*_*dis 13 validation jsf primefaces

Save按下该按钮时,应验证actionsDialog中的数据.如果输入了所需信息并且有效,则会显示名为reasonDialog的第二个对话框.

使用返回错误消息列表的方法完成对已保存对象的非JSF验证.我的情况是验证失败,错误消息与FacesMessage一起显示.我应该如何objectsBean.validate触发if else子句oncomplete

<p:dialog id="actionsDialog" widgetVar="actionsDialog" dynamic="true" 
    resizable="false" width="800" modal="true">
    <ui:include src="/WEB-INF/flows/custom-flow/genericObject.xhtml"/>
    <f:facet name="footer">
        <p:commandButton value="Save" update="msgs"
            oncomplete="if (args.validationFailed) {reasonDialog.hide()} else {reasonDialog.show()}"
            actionListener="#{objectsBean.validate}"/>
        <p:commandButton value="Cancel" immediate="true" oncomplete="actionsDialog.hide()" />
    </f:facet>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 21

如果使用JSF内置的验证工具(即只使用ValidatorException通常在其中抛出所需面部消息的验证器)由于某种原因实际上不是一个选项(我真的想三次,不,三次关于JSF验证工具的工作),那么你总是可以用来FacesContext#validationFailed()向JSF发出一般情况下验证失败的信号,这正是JSF验证工具在ValidatorException捕获时所做的事情.

FacesContext.getCurrentInstance().validationFailed();
Run Code Online (Sandbox Code Playgroud)