SpringMVC 数据绑定 Map

来源:互联网 发布:日在校园知乎评价 编辑:程序博客网 时间:2024/05/17 22:06

前言:

前几天用ajax发 {  "ids": idList,"op":opStr  }  ,到Controller时,Form类老是绑定数据出错。

Form类结构如下

class Form{private Integer[] ids;private String op;//get、set}

js参数idList的申明: 

  var ids = new Array; // get id,some transform op// each {      ids.push(id);}
老是绑定不上,后来看request url

发现url是这样的http://xxxx/controllerName/methodName?ids[]=val1&id[]=val2&op=opStr

居然没有index的,怪不得出错,

var ids = {}; //获取值,省略//给ids 赋值$(val).each(function(i,e){     ids[i]=e;    })

这样初始化url就会是酱紫的 http://xxxx/controllerName/methodName?ids[index]=val1&id[index]val2&op=opStr

嗯,还没有完结……

发现这样的话,map的Bind不就解决了么。

 这个普通类型的map,肯定可以的

 var map = {}; map[key] = value; map[key1] = value2;

如果map<String,Object>呢?再按上面那样来肯定是行不通的,

我的思路是这样的:这个方案还不太好,因为还要对后台进行转换,周末研究一下springmvc的bind,有更好的方案,会贴出,更新

class xxForm{      private  String key;       private   Object obj;  //get set        }class xxFormWrapper{    private       List<xxForm> xxforms;//get set}@RequestMapping(~~~)public void xxxMethod(xxFormWrapper xxform){}

这里前端传数据的话,最好用json,或者用AjaxForm来传input 的name设为xxforms[i].key=keyVal,、xxforms[i].obj.name=nameStr、xxform[i].obj.veryHandSome = true


0 0
原创粉丝点击