日期:2014-05-17  浏览次数:20741 次

遇到点小问题。望解答
session中放入了 mmsInfo
我现在不想用c:foreach取出  
想通过${mmsInfo[i]}取出 我怎么去拼接字符串呢 
我现在是 var s="${mmsInfo["+i+"].audioFilePath}"; (i是动态变量) 这么拼的~~
但是得不到值。。求解释 谢谢~~

------解决方案--------------------
我上面不是说了吗,你这样写是错的,你要弄清楚jsp的原理,它其实就是一个servlet
只是它比serlvet多了一次编译的过程,它所有前台客户端的代码都是通过PrintWriter out = response.getPrintWriter();
out.print(前台内容);
你这里的var s i 只要不是<%%>和EL表达式或者JSTL标签外的所有都是通过out.print的输出到客户端的
所以你这里的${mmsInfo["+i+"].audioFilePath} 他根本就执行不了,错误的语法,
不能再服务器端执行的代码中加入客户端的代码,记住这一点就可以,
------解决方案--------------------
我只能这么说、jsp先执行服务器端的代码 如struts标签、el表达式、jstl、 <%%> 这样服务器端的代码、

然后才执行客户端的代码如js jquery等、

而你这样写

 var s="${mmsInfo["+i+"].audioFilePath}";

其实相当于 var s = ""; 因为你的i 是js 是客户端的代码、服务器代码已经生成完毕了、