EL表达式取值问题 求指教!!!

一个Struts的Action跳转到一个JSP页面并传递usersList的用户链表参数,现在我想在JSP页面中的js脚本中用EL表达式来取usersList中的第i个元素,我是这么写的:
[code="java"]

var i=0; //若干代码,i被赋值 var name = "${usersList["+ i +"].username}" //不行,应该如何写呢?

[/code]

求指教!

3个回答

这样是不行的,java总是在javascript之前编译,
var name="${userlist["+i+"].username}"
编译的时候先编
${userlist["+i+"].username} 这一部分,你说i写这是怎么编译,我还没见过数组下标为"+i+"的。jsp是如何编译成html文件的你还没搞清楚。
想的到下标为0的对象可以用:
Object obj= request.getAttribute("userlist");
if(obj!=null&&obj.size>0){
List list=(List)obj;
out.print(list.get(0));
}

jsp传过来的参数必须用jsp代码接收。 可以改成如下
1.<br><br> 2. var i=0;<br><br> 3. //若干代码,i被赋值<br><br> 4. var name = &lt;%=(List)request.getParamter(&quot;userList&quot;).get(0);%&gt; // 这块直接用jsp接收参数,然后提取集合第一个值<br><br> 5.

我试了动态传值是不行啦,除非你把i放到request里。

 var name = "${usersList[0].username}" //这样写实没问题的
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问