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

EL表达式获取Map的值,在线等,求帮助
大家好,我的问题是这样的
map是这样写的

Map<String,String>  map  = new HashMap<String,String>();
map.put("a","aa");
map.put("b","bb");

ModelAndView mv = new ModelAndView();
mv.setViewName("/jsp/jyxw");
mv.addObject("list", map);
return mv;

然后在jsp页面中

<c:forEach items="${list }" var="map">
<h1>${map.key}--${map.value }</h1>
</c:forEach>

这样是可以获取到值的,但是我想通过Key去获取值,我试了以下方法
方法一,不要引号:

<c:forEach items="${list }" var="map">
<h1>${map[a]}</h1>
</c:forEach>

这样的话获取不到值
方法二,加单引号:

<c:forEach items="${list }" var="map">
<h1>${map['a']}</h1>
</c:forEach>

出现错误javax.el.PropertyNotFoundException: Property 'a' not found on type java.util.HashMap$Entry
方法三,加双引号:

<c:forEach items="${list }" var="map">
<h1>${map["a"]}</h1>
</c:forEach>

和方法二的错误提示一样javax.el.PropertyNotFoundException: Property 'a' not found on type java.util.HashMap$Entry
各位大神帮帮小弟,非常感谢!!!
------解决方案--------------------
<h1>${map.key['a']}</h1> /<h1>${map.key[0]}</h1>呢 这样试试 
------解决方案--------------------
取错了。   ${list['a'] }