Ajax リクエストを使用して WebFlow の次の状態に移行しようとしています。しかし、それは同じ状態にとどまり、次の状態の GSP を期待している間、その状態の応答として GSP を返します。
以下は、WebFlow コードです。
def gettingStartedAjaxFlow = {
flow1 {
on("next") {
println "flow1"
}.to("flow2")
on("skip").to("flow2")
}
flow2 {
on("next") {
println "flow2"
}.to("flow3")
on("skip").to("flow3")
}
flow3 {
on("next"){
println "flow3"
}.to("finish")
on("skip").to("finish")
finish {
redirect(action:"index")
}
}
}
以下は、状態遷移のために作成している Ajax 呼び出しです。
$.ajax({
type: "POST",
url: "/UN/user/gettingStartedAjax",
success: function(data) {
$("#wizardDiv").html(data);
}
});
各状態 (flow1、flow2、flow3) の GSP には、remoteForm と required next を含むコード フラグメントが含まれており、送信ボタンをスキップして次の状態に遷移し、結果として "wizardDiv" div を更新します。次に、flow1 状態の GSP フラグメントを示します。
<g:formRemote name="flow1Form" url="[controller:'user', action:'gettingStartedAjax']" update="wizardDiv">
<p>You are in flow 1</p>
<g:submitButton name="next" value="Next Flow" />
<g:submitButton name="skip" value="Skip Flow" />
</g:formRemote>