SpringMVC 数据绑定 Map

前言:

前几天用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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值