牛骨文教育服务平台(让学习变的简单)
博文笔记

EL表达式取Map集合问题

创建时间:2016-04-14 投稿人: 浏览次数:1905

今天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’]}取,就行了。。。基础知识都往了。。。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。