2012-05-15 2 views
8

먼저, 스프링 웹 플로우와 스프링 자바 스크립트를 사용하여 아약스 호출을 더 쉽게 만든다.Ajax + Spring 웹 플로우

지금 당장은 아약스가 웹 플로우를 호출하여 적절한 조각을 표시하도록하고 있습니다.

그래서 Spring.AjaxEventDecoration을 사용하여 내 애플리케이션에 대한 내 아약스 요구 사항을 시도하고 있습니다. 그러나이 방법과 웹 플로우에 약간의 문제가 있습니다. 사용할 수있는 예제가 거의 없습니다.

참고로 양식이나 선택 상자를 사용하고 있지 않습니다. 나는 내가 발견 한 모든 예제가 onlick 이벤트와 함께 form/form submit를 사용했거나 onchange 이벤트를 가진 box를 선택했기 때문에 이것을 언급 할 것이라고 생각했다.

홈페이지 질문 : 내 아약스에서 오는 매개 변수가 내 webflow의 방법이있는 경우, 실제로 webflow하는 아약스의 매개 변수에 전달할 수 있습니다?

코드 : 내가 불을 지르고에서 Ajax 호출을 볼 때

<transition on="disassociateProperty" > 
    <evaluate expression="dService.disassociateProperty(requestParameters.currentPId ,currentD)" result="flowScope.currentD" /> 
<render fragments="PList" /> 
</transition> 

그래서, 그것이 내가 (currentPId)를 전달하고있어 매개 변수 및 올바른 이벤트 ID를 가지고 있습니다.

disassociateProperty 메서드의 첫 번째 줄에 디버그 지점을 넣었고 currentPId가 null이라고 알려줍니다.

그래서 웹 플로우의 requestParameters.currentPId가 ajax 호출에서 currentPId를 가져 오지 않는다고 가정합니다.

예상 되나요? 누구든지 설명하고 예제를 줄 수 있습니까?

제공되는 도움말에 감사드립니다. 여기 아약스 호출을 작성하는 경우 아담

답변

7

당신은 문제가 아약스 호출에서 오는 것으로 생각하는 경우

, 그것은 도움이 될 것입니다, 그래서 통화가 제대로되고 있는지 우리는 확인할 수 있습니다.

ayax 호출을 수행 할 때 데이터 매개 변수에이 직렬화 된 양식을 전달하려고 할 수 있습니다. 또한 URL에 ajaxSource 매개 변수를 추가하는 것을 잊지 마십시오. 희망이 도움이됩니다.

HTML 예 :

<form id="formId" method="post" action="${flowExecutionUrl}&_eventId=disassociateProperty"> 
    <input type="text" id="currentPId" /> 
</form> 

jQuery를 예 :

$.ajax({ 
     type: "POST", 
     data: $("#formId").serialize(), 
     url: $("#formId").attr("action") + "&ajaxSource=true", 
     ... 
}); 
+2

나는 내 문제를 파악, 그것은 webflow했다. 웹 플로우가 매개 변수를 현재 모델 객체에 바인딩하려고했기 때문에 매개 변수에 액세스 할 수 없었습니다. 그래서이 특정 전환을 위해 바인딩을 해제해야했습니다. 답장을 보내 주셔서 감사합니다. – Adam

+0

@txedo 감사합니다. 다른 어떤 구성도없이 저에게 맞는 작품입니다. 나는 "Spring.AjaxEventDecoration"을 사용하지 않았다. – Razib