注意,我标题里面说的EL嵌套是不可能的,是肯定会报错的,实际上不需要EL嵌套是可以实现自己想要的结果的。
最近用spring mvc 加前台 jstl进行开发,发现后台加到modelMap里面的值前台取的时候可能会用到EL的嵌套,例如后台传了一个hashmap到前台,前台根据map的key值取对应的value,而key值又是用<c:foreach>某个list产生的,这个时候,我们可能会想到${map.get(${key})}这样的写法,这样写是肯定有问题的,我们不能这样写,不过EL很强大,对里面的参数进行解析时有时候会识别变量去解析其对应的值。
<c:foreach item=${list} var="object">
<c:set value="${object.id}" var="id"/>
${map.get(id)}
</c:foreach>
实际测试当中,通过map.get()这样的写法是可以取到值的,当然奇怪的是我有个同事的不知道什么版本的chrome浏览器直接报500错误了,而其他的同事都能正常显示值。
这个时候,我实在想不出什么好办法,只能用最原始的jsp中写java代码来实现所有的功能,这个我就不多讲了,给个例子大家看就明白了。
<c:forEach items="${shippers}" var=&#