如何使用 modelAttribute 在 ajax(jquery) 中提交 spring 表单

2022-09-03 16:31:58

我是春季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"); }

我能够使用提交此内容,并且我的模型Attribute工作正常,从UI中获取值。$("#formid").submit();

我的问题是,如何以jquery ajax方式提交此表单?我试过了这个,

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

});

表单已提交,但 modelAttribute 值为 null,如何在提交时包含 modelAttribute 对象(表单正在使用的对象)?


答案 1

您需要发布数据。我通常这样做的方法是使用以下方法。

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

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

答案 2

不会填充模型属性,因为您不会将任何参数传递给服务器。表单数据必须发布到服务器

$.post('myaction.htm', $('#formid').serialize())以发送 ajax 发布请求。


推荐