2012-05-15 26 views
8

Trước tiên, tôi đang sử dụng luồng web mùa xuân và một số javascript mùa xuân để thực hiện cuộc gọi ajax dễ dàng hơn.Ajax + Spring Webflow

Hiện tại, tôi đang có ajax thực hiện cuộc gọi vào luồng web để hiển thị đoạn thích hợp.

Vì vậy, tôi đang cố gắng sử dụng Spring.AjaxEventDecoration cho ajax của tôi cần cho đơn đăng ký của tôi. Tuy nhiên, tôi đang gặp một số rắc rối với phương pháp này và luồng web và từ những gì tôi có thể nói, có rất ít ví dụ có sẵn để làm việc.

Lưu ý phụ, tôi không sử dụng biểu mẫu hoặc hộp chọn. Tôi nghĩ rằng tôi sẽ đề cập đến điều này vì mỗi ví dụ tôi đã tìm thấy đã sử dụng một hình thức/hình thức gửi với sự kiện onlick hoặc chọn hộp với sự kiện onchange.

Câu hỏi chính: nếu tôi có phương pháp trong luồng web có tham số đến từ ajax của tôi, tôi có thể thực sự chuyển các tham số từ ajax sang luồng web không?

Code:

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

Vì vậy, khi tôi nhìn vào các cuộc gọi ajax trong firebug, nó có thông số tôi đang đi qua trong (currentPId) và EventId đúng.

Tôi đặt một điểm gỡ lỗi trên dòng đầu tiên của phương thức disassociateProperty và nó cho tôi biết currentPId là null.

Vì vậy, tôi giả sử requestParameters.currentPId trong luồng web không kéo currentPId khỏi cuộc gọi ajax.

Điều này có được mong đợi không? Bất cứ ai có thể giải thích và đưa ra một ví dụ?

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào được cung cấp.

Adam

Trả lời

7

Nếu bạn nghĩ rằng vấn đề xuất phát từ cuộc gọi ajax, nó sẽ rất hữu ích nếu bạn viết ở đây gọi ajax, vì vậy chúng tôi có thể kiểm tra nếu cuộc gọi đang được thực hiện một cách chính xác.

Bạn có thể thử chuyển biểu mẫu được tuần tự trong thông số dữ liệu khi thực hiện cuộc gọi ajax. Ngoài ra, đừng quên thêm thông số ajaxSource vào URL. Hy vọng điều này giúp đỡ.

HTML dụ:

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

jQuery Ví dụ:

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

tôi đã tìm ra vấn đề của tôi, nó đã được ở webflow. Tôi không thể truy cập các tham số mà tôi đã gửi vì luồng web đã cố gắng ràng buộc các tham số với đối tượng mô hình hiện tại của tôi, mà tôi không muốn. Vì vậy, tôi chỉ phải tắt ràng buộc cho quá trình chuyển đổi cụ thể này. Nhưng cảm ơn bạn đã trả lời. – Adam

+0

@txedo cảm ơn rất nhiều. Nó làm việc cho tôi mà không có bất kỳ cấu hình nào khác. Tôi đã không sử dụng bất kỳ "Spring.AjaxEventDecoration" – Razib

Các vấn đề liên quan