EL表达式取Map集合问题
今天action中向jsp页面传了一个map集合:
Map<Integer, List<Card>> maps = new HashMap<Integer, List<Card>>();
List<Card> heilongjiang=new ArrayList<Card>();
for (Card card : cards) {
if(card.getAddress().contains("0")){
heilongjiang.add(card);
}
}
maps.put(0, heilongjiang);
request.setAttribute("maps", maps);
return "mapInfo";
jsp页面用forEach做循环:
<c:forEach items="${maps[0]}" var="item">
。。。。。。
但是这里${maps[0]}怎么都取不到值啊,我还以为是取值域有问题,还特意去查了查,但是没问题啊:
${你要取的值},页面会默认从page,request,session,application这四个域中查找。
后来查了下el表示取map集合:
map[key1]−−−−直接取map中key=key1的value;例:map.put("a","b"), {map[“a”]} 就可以
注意:如果key1 是数值,例如; 1
后台 map.put(1, value1) , 前台map[1]将取不到值。原因:el表达式中数字1是Long类型,无法匹配后台map中的int。修改map.put(1L,value);前台: {map[1]}.
所以将action中map的key改为string,el表达式用${maps[‘0’]}取,就行了。。。基础知识都往了。。。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: NSArray与NSSet的区别
- 下一篇: PHP获取当前时间(年,月,日,小时,分,秒)