Ajax 요청을 사용하여 WebFlow의 다음 상태로 전환하려고합니다. 그러나 그것은 다음 주에 GSP를 기대하면서 동일한 상태에 머물러 있으며 해당 주에 대한 응답으로 GSP를 반환합니다.Grails WebFlow with Ajax
$.ajax({
type: "POST",
url: "/UN/user/gettingStartedAjax",
success: function(data) {
$("#wizardDiv").html(data);
}
});
각 상태에 대한의 GSP (유량 1, flow2, flow3)이 포함되어 아약스 나는 상태 전환을 만드는 중이 호출되어 다음
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")
}
}
}
:
다음은 WebFlow 코드 다음에 remoteForm &이 필요한 코드 조각을 작성하고 제출 단추를 건너 뛰어 다음 상태로 전환하면 결과적으로 "wizardDiv"div가 업데이트됩니다. 유량 1 상태에 대한 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>
그래서 내 Gsp의 예를 들어 줄 수 있습니까? Ajax 호출 내에서 응답을 처리하고 Ajax 호출 내에서 링크를 인쇄하면 "매개 변수 실행"에 대해 더 자세히 설명 할 수 있습니다. – Daxon
주요 트릭은 단추를 처리하는 것입니다. Grails가 숨겨진 입력 변수를 이미 실행하고 있기 때문에 flowExecutionKey를 잡을 필요가 없습니다. 그러나 직렬화 된 양식 데이터를 사용하여 아약스를 게시하는 동안 올바른 버튼 이름을 보내야합니다. 다음에 클릭하면 게시물 데이터에 _eventId_next를 보냅니다. – kaychaks
@kaychaks - 그래서 내가하는 모든 일은 올바른 URL을 가지고 있다는 것입니다. "_eventid_next"아약스 POST/GET에서, 그리고 그게 뭐죠? 그래서 "? execution = e1s1"을 제출하고 더 많은 아약스 요청을 보내면 어떻게 될지 신경 쓸 필요가 없습니다. – Daxon