[英]How to pass JSON object from ajax to controller in spring mvc?
我正在使用Spring MVC。 我需要将jsp页面中的json对象传递给控制器。
我的ajax代码:
function createJSON() {
jsonObj = [];
item = {};
$(".values").each(function() {
var code = $(this).attr('id');
item[code] = $('#' + code).val();
});
var content=JSON.stringify(item)
$.ajax({
type: 'POST',
contentType : 'application/json; charset=utf-8',
url: "/pms/season/submit",
data: content,
dataType: "json",
success : function(data) {
alert(response);
},
error : function(e) {
alert('Error: ' + e);
}
});
}
我的控制器代码:
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public void saveNewUsers( @RequestParam ("json") String json) {
System.out.println( "json ::::"+json );
}
但这不起作用。
@RequestParam(“ json”)意味着您打算在URI中包含一个名为json的请求参数,即/ submit?json = ...
我认为您打算获取请求正文,即@RequestBody。
然后,我建议,除非您确实需要原始JSON字符串,否则将@RequestBody转换为Java对象:
public void saveNewUsers(@RequestBody MyDto myDto) {
...
}
MyDto将具有与JSON类匹配的getter / setter和字段。
如果使用@RestController而不是@Controller注释控制器,则可以忽略@RequestBody注释。
如果您确实想要原始的JSON字符串,那么请看一下先前的问题: 在spring mvc @ResponseBody中返回文字JSON字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.