javascript 如何通过el表达式获取后台传来的数组

javascript中:alert(${size});//显示3for(varx=0;x<${size};x++){alert('${reportName[x]}');/... javascript中:
alert(${size});//显示3
for ( var x = 0; x < ${size}; x++) {

alert('${reportName[x]}');//显示为空
}

alert('${reportName[0]);//显示具体值

为什么用具体下标就能获取,用for循环就不行,
var reportName = '${reportName[x]}';也不行

将数组放到一个string里,传到javascript再拆分是可行,但是觉得麻烦,有其他办法吗?
修正:var reportName = '${reportName}';也不行

原来我走了弯路,直接用jstl就行
<c:forEach items='${list}' var='list'>
<option value="${list.reportID}">${list.reportName}</option>
</c:forEach>
展开
 我来答
z6220601
推荐于2016-03-21 · TA获得超过378个赞
知道小有建树答主
回答量:428
采纳率:0%
帮助的人:569万
展开全部
el毕竟是服务器端的脚本,怎么可能和客户端脚本混用呢?
执行过程是服务器先解析了服务器端脚本后,结果返回到客户端,由浏览器执行返回的结果,这个两个步骤,不能混合搭配使用的。
我觉得有两种做法:
一种是你说的,用字符串,然后客户端拆分再操作。
另一种是用el循环,输出的东西是客户端脚本的数组操作
var aaa=new Array();
<c:forEach items="${reportName}" var="mm">
aaa.push("${mm}");
</foreach>

然后操作aaa
两种方法大同小异
zhoub5231
2012-10-22 · 超过15用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:33.5万
展开全部
el表达式是在服务器端处理的,javascript是在浏览器里运行,
所以代码中:
for ( var x = 0; x < ${size}; x++) {

alert('${reportName[x]}');
}
的el表达式处理时,x是没有值的,所以到前端运行alert时就是空了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
游龙玉
2012-10-10 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:6.3万
展开全部
页面一般都是用C标签直接处理LIST了,
你这种方式没试过,建议你把单引号去掉再试试
alert(${reportName[x]});//
追问
javascript里面用el表达式必须用单引或双引括起来,否则会报错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
紫文6L
2012-10-10
知道答主
回答量:51
采纳率:0%
帮助的人:14.5万
展开全部
其实用string 拆分也不麻烦,挺好弄的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式