2

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

<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以防万一验证失败。

是否可以禁止调用动作?

4

2 回答 2

7

从动作侦听器中,AbortProcessingException当您想要中止剩余动作侦听器和最终动作的处理时,您应该抛出。

但是,最好Validator在输入组件上使用实数。这样整个调用动作阶段将被绕过。

也可以看看:

于 2013-06-11T11:59:07.920 回答
1

saveTeam如果验证失败,您可以在当前实例上调用FacesContext # renderResponse()FacesContext以跳过所有后续阶段并进入渲染响应阶段。

只需添加以下行:

   FacesContext.getCurrentInstance().renderResponse();

在验证失败的情况下saveTeam

编辑:

我的建议是使用 realvalidator进行验证

于 2013-06-11T11:38:17.707 回答