Как отправить форму spring в ajax (jquery) с помощью параметра modelAttribute
Я новичок в Spring MVC. У меня есть такая форма,
<form:form action="/myaction.htm" method="post" modelAttribute="myForm" id="formid">
и контроллер, который возвращает json
public @ResponseBody ResultObject doPost(@ModelAttribute("myForm") MyForm myForm){ System.out.println("myform.input"); }
Я могу отправить это, используя $("#formid").submit();
и мой modelAttribute работает нормально, принимая значения из пользовательского интерфейса.
мой вопрос, как отправить эту форму в JQuery AJAX способ? Я попробовал это,
$.ajax({
type:"post",
url:"/myaction.htm",
async: false,
dataType: "json",
success: function(){
alert("success");
}
});
форма отправлена, но значения modelAttribute равны нулю, как включить объект modelAttribute (объект, который используется в форме) при отправке?
Ответы
Ответ 1
Вам нужно опубликовать данные. Как я обычно делаю это, используйте следующее.
var str = $("#myForm").serialize();
$.ajax({
type:"post",
data:str,
url:"/myaction.htm",
async: false,
dataType: "json",
success: function(){
alert("success");
}
});
Ответ 2
ваши атрибуты ModelAttributes не заполняются, так как вы не передаете какие-либо параметры серверу. Данные в формате должны быть отправлены на сервер
$.post('myaction.htm', $('#formid').serialize())
для отправки запроса ajax post.