spring MVC 传入 json 数组

来源:互联网 发布:上海德颐网络正规吗 编辑:程序博客网 时间:2024/05/18 01:12

使用环境: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字符串

0 0
原创粉丝点击