SpringMVC Json数据 转换成Object

月沉海雾 发布于 2013/03/13 18:18
阅读 7K+
收藏 1

WEB页面提交一个请求,想把一个Json数据传到controller里面。贴下大概代码

WEB页面Ajax请求

$.ajax({
            url:"index/color/update.json",
            data:arr[0],
            type:"post",
            dataType:"json", 
            contentType: "application/json; charset=utf-8",
            cache:false,
            success:function(data){
            if(dat&&data.success==true){
                alert("保存成功");
            }
            else{
                alert("保存失败");
            }
    },

Spring Config

    <mvc:annotation-driven validator="validator" conversion-service="conversion-service">
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
    </mvc:message-converters>
</mvc:annotation-driven>

Controller

    @RequestMapping(value="/color/update.json",method = RequestMethod.POST)
    public void update(Model model ,@RequestBody List list){
    System.out.println(list.size());
    }

在Controller @RequestBody 如果数据类型用String 可以获取到数据,如果用List不能获取到数据,好像SpringMVC在把Json转换成Object有问题,浏览器提示400 Bad Request折腾几个星期了,网上也看别人的配置,不知道为什么一直都不成功。

求了解的朋友指点下,先谢谢了。



加载中
0
爪哇小贩
爪哇小贩
ajax里是一个数组 data:arr[0],controller接收两个参数update(Model model ,@RequestBody List list),这样不行吧,我从来没有这样用过
月沉海雾
arr[0]={"colorId":2,"colorNum":b002,"colorName":海水蓝,"colorGroup":blue}
月沉海雾
arr[0]是json格式,我忘记贴出来了,你的用法可以举个例子吗,麻烦了
0
F_L_F
F_L_F
一切问题都要从异常着手,你连个异常信息都没,只说报400错误,很难找错哦。。。。。。
月沉海雾
这个控制台没有产生异常
0
爪哇小贩
爪哇小贩

你把问题想复杂了,spring MVC其实很简单的给你写个例子吧

been省略get,set方法

class User(){

private int id;

private String uname;

}

controller直接方法

pubilc void update(User user){

do something...

}

ajax

$.ajax({

url:'xxx/xxx.do',

data:{

id:xxx,

uname:'xxx'

}

})

ajax的入参属性名必须和bean的属性名一致,spring就能自动绑定对象 

月沉海雾
我的代码跟你的一样啊,不知道为什么不行,你能帮我看下我错在哪里吗。上面的代码model没有贴出来。需要贴出来吗?我Q:860075110。
0
月沉海雾
自己解决了,谢谢午后冬日。
返回顶部
顶部