1、el表达式里不能放js变量,所以需要循环遍历el表达式的集合,在<script>
标签外用<c:forEach>
遍历,赋给另一个数组。
<script type="text/javascript">
var ids = new Array();
var names = new Array();
</script>
<c:forEach items="${list}" var="t">
<script type="text/javascript">
ids.push("${t.id}");
names.push("${t.name}");
</script>
</c:forEach>
2、前台将集合对象封装成json字符串,以键值对的形式赋给数组,再通过JSON.stringify(数组)转化成json字符串;
var array = new Array();
for(var i=0;i<count;i++){
var ts={"id":"","name": ""};
ts.id=ids[i];
ts.name=names[i];
array[i]=ts;
}
var str = JSON.stringify(array);
$.ajax({
url:'',
type:'post',
data:{
list:str //传给后台的json字符串
},
success:function(){}
});
假设集合里的数据是:
{Goods [id=1,name=abc],Goods [id=2,name=def]} //Goods是一个对象
那么得到的json字符串是:[{“id”:”1”,”name”:”abc”},{“id”:”2”,”name”:”def”}]