无法从 Ajax SpringMVC 的表单中发布对象



如何通过jquery ajax从表单将对象发布到控制器? 我有对象用户:

private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

我有控制器:

@RequestMapping(value = "/user", method = RequestMethod.POST)
public void createUser(@RequestBody User user) {
System.out.println(user.getName());
}

我通过jquery生成表单:

function createForm() {
$("body").append($('<form id="form1" method="POST"></form>'));
$("form").append('<input type="text" id="name">');
$("form").append('<input type="text" id="age">');
$("form").append('<input type="button" onclick="formSubmit();" value="Ok">');}

我尝试通过ajax将数据传输到我的控制器:

function formSubmit() {
$.ajax({
type : "POST",
url : 'rest/user',
contentType : 'application/json',
dataType : 'json',
data : $('#form1').serialize(),
success : function(data) {
doAjax();
}
});
}

方法doAjax只是生成db的结果。

但它不起作用!

原因是您已将dataType设置为json,但由于您使用$('#form1').serialize()data是纯字符串。

为了获取数据,您需要删除ajax方法中的dataType

function formSubmit() {
$.ajax({
type : "POST",
url : 'rest/user',
contentType : 'application/json',
//dataType : 'json',
data : $('#form1').serialize(),
success : function(data) {
doAjax();
}
});
}

相关内容

最新更新