使用环境:spring 4.2 ; jackson 2.6
业务场景: 批量添加用户;使用@RequestBody注解自动设置list类型的数据
第一步:添加依赖(build.gradle)
compile 'com.fasterxml.jackson.core:jackson-core:2.6.3'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.3'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.6.3'
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
spring依赖省略
第二步:配置
在webAplicationContext的XML文件中配置
<!--使 @RequestMapping, @ExceptionHandler及其他注解(有关数据格式转换的)起作用-->
<!--使 @RequestMapping, @ExceptionHandler及其他注解(有关数据格式转换的)起作用-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
注意点:类名为MappingJackson2HttpMessageConverter(对应Jackson2.x版本)
第三步:后台Controller方法
@RequestMapping("/batchAdd")
@ResponseBody
public ResultDTO addUsers(@RequestBody List<User> users) {
userService.batchAdd(users);
return new ResultDTO(true, ReturnCodeEnum.ADD_COMPLETE.getMessage());
}
注意点: 方法参数前需要添加@RequestBody;只支持单参数
第四步:前端
var uses = [{name:'jack1', sex:1},{name:'jack2', sex:0},{name:'jack3', sex:1}];
$('#batchAdd').click(function () {
$.ajax({
url:'/apple/base/user/batchAddCached',
type:'post',
contentType:"application/json;charset=utf-8",
data:JSON.stringify(uses),
success:function (result) {
console.log(result);
}
});
});
注意点:1.需要添加contentType:”application/json;charset=utf-8”
2.data项只能是json字符串