最初に、質問のタイトルを修正する必要があります。「送信されたフォームデータの処理」ではなく、検証後に送信されるフォームデータです。
今解決策。
たとえば、私のフォームには次のようなものがあります。
1-ユーザーはa4j:commandButttonである「偽の」送信ボタンをクリックします。
2-Ajax呼び出しはreRender属性のフィールドを更新します
3-その後、再レンダリングされたフィールド値を使用してメソッドdoSomeStuff()が実行されます
4-最後に、Javascriptが実行されてフォームを送信するかどうかが決まります。
形:
<h:form id="myForm">
<h:inputText id="name" value="#{personHome.person.name}"/>
<h:inputText id="surname" value="#{personHome.person.surname}"/>
<a:commandButton value="Save" reRender="name, surname"
action="#{personHome.doSomeStuff()}"
oncomplete="return checkMessage('#{personHome.success}')"
id="a4jSave" />
<h:commandButton id="save" value="Save"
action="#{personHome.persist}"
style="visibility:hidden" />
</h:form>
JavaScript:
<script language="javascript">
function checkMessage(success) {
if(success =='false')
{
return confirm('Do you want to submit this form?') ? submitForm() : false;
} else {
submitForm ();
}
}
function submitForm() {
document.getElementById('myForm:save').click();
return false;
}
</script>