java - JSF 2.0 禁止在 actionListener 中验证失败后调用操作

标签 java jsf jsf-2 action actionlistener

我有一个用于添加一些数据的对话框:

<p:commandButton id="save" 
    actionListener="#{adminNationalController.saveTeam}" 
    action="#{adminManageInternationalTournamentController.updateTeamList}"
    value="#{msg.save}" ajax="true"
    icon="ui-icon-check"
    onmousedown="return validateSubmit('addCombinedTeamForm', ['name'],'lang')"
    oncomplete="if (!args.validationFailed) addCombinedTeamDialog.hide()"
    process = "@form"
    update="lang, name, :manageTournament:dataList,:manageTournament:scroll, :menuForm:growl, :manageTournament:nationalTeam">

    <f:setPropertyActionListener 
        value="#{adminNationalController.newTeamBean}"
        target="#{adminManageInternationalTournamentController.newTeamBean}"/>

</p:commandButton> 

saveTeam 中,我尝试验证数据,但 action case 以防验证失败。

是否可以禁止调用操作?

最佳答案

在 Action 监听器中,当您想中止剩余 Action 监听器和最终 Action 的处理时,您应该抛出 AbortProcessingException

但是,更好的方法是在输入组件上使用真正的 Validator。这样,将绕过整个调用操作阶段。

另见:

关于java - JSF 2.0 禁止在 actionListener 中验证失败后调用操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042785/

相关文章:

java - 在 Java 中向列表中添加值是否会复制数据或创建引用?

java - 嵌套集合 lambda 迭代

xml - JSF:放置 xml namespace 的合适位置在哪里?

mysql - 将 JSF 添加到 Netbeans 中的现有项目 J2EE

java - 将图像设置为 JPanel 背景的最简单方法

java - 在 jsf 2 中处理用户 session

Facelets 中的 JavaScript 导致 java.lang.IllegalArgumentException : null source

jsf-2 - 托管属性不工作

jsf - 在带有新实体的 primefaces dataTable 中使用 rowKey

java - 如何在 JSF 中同步来自同一用户的两个请求?