EL表达式获取Map和List中的值

EL表达式获取MapList中的值

 

EL表达式取Map中的值:

  1. Map中是String,String

后台servlet中:

Map<String, String> map1 = new HashMap<String, String>();

map1.put("a", "b");

map1.put("aa", "bb");

map1.put("aaa", "bbb");

前台jsp 中使用EL获取Map

  1. 使用${map1["a"]}${map1.a}取值

${map1["a"]}

${map1.a}

输出为:

  1. 使用jstl<forEach>标签取值

<c:forEach items="${map1}" var="item">

    key:<c:out value="${item.key}" /> &nbsp;&nbsp;&nbsp;

    value:<c:out value="${item.value}" /> <br/>

</c:forEach>

输出为:

不知道为什么与存放的顺序不同?

  1. Map中是Integer,String

    后台servlet中:

            HashMap<Integer, String> map2 = new HashMap<Integer, String>();

            map2.put(1, "b");

            map2.put(2, "bb");

            map2.put(3, "bbb");

    前台jsp 中使用EL获取Map

    1. 使用${map2[1]}${map2["1"]}不可以获取到值,使用${map2.1}取值会报错。Map中的key类型为Long时,可以使用${map2[1]}取到值
    2. 使用jstl<forEach>标签取值,与Map中存放String,String时一样,可以取到值

     

    EL表达式取List的值:

    后台servlet

    List<String> list1 = new ArrayList<String>();

    list1.add("a");

    list1.add("b");

    list1.add("c");

    list1.add("d");

    前台jsp 中使用EL获取Map

    1. 使用${list1[1]}获取值
    2. 使用jstl<forEach>标签取值

        <c:forEach items="${list2 }" var="item">

            <c:out value="${item}"></c:out> <br/>

        </c:forEach>

    无论List中存放的是String或是Integer,上述两种方式都可以成功取到值

原文地址:https://www.cnblogs.com/huangwenjie/p/5724102.html