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”}]
本文介绍如何在EL表达式中使用JSP标签遍历集合,并将其转换为JSON字符串,以便于前后端数据交互。具体步骤包括使用<c:forEach>遍历集合填充JS数组,再将数组封装成JSON格式。


被折叠的 条评论
为什么被折叠?



