带复杂类的list,前后台交互

经常会碰到list<class>这样格式的数据传输,这里我总结一下前后台传复杂list的写法,供大家参考。


1、前台向后台传:

js部分:

		<script>
			/*** 按后台格式 list<class>组json,纯js ***/
			var lists = new Array(); //定义一个数组格式,相当于最外层的list

			for(var i = 1; i <= 2; i++) { //list里有几个class就循环几次,这里只示例2次
				var classRecode = {}; //定义一个数组格式,相当于class对象
				classRecode.minValue = "minValue"; //class里有什么属性,就按这个格式添加
				classRecode.maxValue = "maxValue";
				lists.push(classRecode); //将一个class放入list
			}

			var returnValue = JSON.stringify(lists)); //将list转成json格式,此时的returnValue既可传往后台,也可在html页面中赋值。
		</script>

java部分:


String ruleLists = returnValue; //以String格式接收returnValue,用框架也好request.getparameter()也好自己处理。 List
<EbtFundRateRule> ruleList = JSONArray.parseArray(ruleLists, EbtFundRateRule.class);//JSONArray.parseArray直接将json转成带class格式的list


2、后台向前台传

java部分:

List<EbtFundRateRule> list = ebtProFund.getRuleList();//随便列举一个带class的list
mav.addObject("ruleListView", JSONArray.toJSON(list));//JSONArray.toJSON(list)将list转为json,就可以直接传到前台了。

 

js部分:

		<script>
			var ruleListView = JSON.parse('$!{ruleListView}'); //接收json,这里只列举velocity的例子
			for(var i = 0; i < ruleListView.length; i++) { //遍历list
				var obj = ruleListView[i]; //取出list里的一个值
				alert(obj.minValue); //取出每个对象里面的属性
				alert(obj.maxValue);
			}
		</script>

好了,就这些,这样list前后台传值问题就解决了。

实际使用时还有一种方法是ajax的方法来传,因为ajax直接就是传的json,所以直接取返回data里的数据就能用了。十分简单,不多说。

我这里的写法主要是原生的js,从源头上解析怎么组装成list的数据格式,大家看看就好。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值