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

編集:

私の提案は、検証目的で実数を使用するvalidatorことです。

于 2013-06-11T11:38:17.707 に答える