2012-12-19 32 views
13

Tôi mới vào Spring MVC. Tôi có một hình thức như thế này,Làm thế nào để gửi mẫu mùa xuân trong ajax (jquery) với modelAttribute

<form:form acion="/myaction.htm" method="post" modelAttribute="myForm" id="formid"> và một bộ điều khiển trả về json

public @ResponseBody ResultObject doPost(@ModelAttribute("myForm") MyForm myForm){ sysout("myform.input"); }

Tôi có thể nộp này sử dụng $("#formid").submit(); và modelAttribute tôi đang làm việc tốt, lấy giá trị từ UI.

câu hỏi của tôi là, cách gửi biểu mẫu này theo cách jquery ajax? Tôi cố gắng này,

$.ajax({ 
type:"post", 
url:"/myaction.htm", 
async: false, 
dataType: "json", 
success: function(){ 
alert("success"); 
} 

}); 

biểu mẫu được gửi nhưng giá trị modelAttribute là null, làm thế nào để bao gồm modelAttribute đối tượng (đối tượng hình thức mà đang sử dụng) trong khi trình?

Trả lời

2

ModelAttributes của bạn không được dân cư là bạn không đi qua bất kỳ params số liệu server.Form phải được gửi đến máy chủ

$.post('myaction.htm', $('#formid').serialize()) để gửi yêu cầu bài ajax.

52

Bạn cần đăng dữ liệu. Cách tôi thường làm là sử dụng những điều sau đây.

var str = $("#myForm").serialize(); 

$.ajax({ 
    type:"post", 
    data:str, 
    url:"/myaction.htm", 
    async: false, 
    dataType: "json", 
    success: function(){ 
     alert("success"); 
    } 
}); 
+0

hiện đang hoạt động, cảm ơn !! – Rony

+9

@Rony Đừng quên đánh dấu nó được chấp nhận nếu nó làm việc cho bạn. –

+0

Tôi đang sử dụng SpringSecurity với CSRF và tôi nhận được điều này: Mã thông báo không xác định '_csrf': đã được mong đợi ('true', 'false' hoặc 'null'). Bất kỳ giải pháp cho điều đó? – zygimantus

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