1
回答
springmvc 前台json 传入后台转换的问题
【腾讯云】学生服务器套餐10元/月 >>>   

前台代码如下

$.ajax
({
  type:'POST',
  dataType:'json',
  url:'${urlCollect.createUrl("/test")}',
  data:JSON.stringify({myType:["1"]}),
  success:function(res){
      alert("success")
  }
});
后台代码如下
public class TestBean {
    private List<String> myType = new ArrayList<String>();

    public List<String> getMyType() {
        return myType;
    }

    public void setMyType(List<String> myType) {
        this.myType = myType;
    }
}
@RequestMapping(value ="/test", method = RequestMethod.POST)
@ResponseBody
public JsonResultDto test(HttpServletRequest req,TestBean testBean){
     System.out.println(testBean.getMyType().size());
     return new JsonResultDto(true);
}
转换过来的bean  size 一直为0

请有经验的兄弟指点一下

举报
kong_resty
发帖于3年前 1回/2K+阅
共有1个答案 最后回答: 3年前

@RequestBody默认接收的enctype (MIME编码)是application/json

注意看浏览器POST时候的参数:

{"myType":["1","2","3","4"]}    这个是JSON字符串

myType:["1","2","3","4"]    这个是object形式的

是不同的,所以用下面代码:

var myType = new Array();
myType.push("1");
myType.push("2");
myType.push("3");
myType.push("4");
$.ajax
({
 type:'POST',
 dataType:'json',
 url:'test',
 data:{"myType":JSON.stringify(myType)},
 success:function(res){
     alert("success");
 }
});

顶部