日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EL表达式取 Map、 List和数组的值

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EL表达式取 Map、 List和数组的值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jstl是sun的標準taglib庫,Jstl是標簽庫和el語言的結合。
el 表達式的隱含對象pageScope,requestScope,sessionScope,applicationScope。

1. [ ]與.運算符

EL 提供 . 和 [ ] 兩種運算符來導航數據。
下列兩者所代表的意思是一樣的:
user.name{user[“name”]}
. 和 [ ] 也可以同時混合使用,如下:
${sessionScope.userList[0].name},回傳結果為userList中第一個用戶的名字。
注意:使用[]時,里面是String類型要加雙引號“”,是數字,就直接寫數字,不要加雙引號

2. map集合

在EL中,方括號運算符用來檢索數組和集合的元素。對于實現 java.util.Map 接口的集合,方括號運算符使用關聯的鍵查找存儲在映射中的值。在方括號中指定鍵,并將相應的值作為表達式的值返回。
例如,表達式 ${map['key']}返回與 map標識符所引用的 Map 中的 “key” 鍵相關聯的值。當forEach 的items屬性中的表達式的值是java.util.Map時,則var中命名的變量的類型就是 java.util.Map.Entry。這時var=entry的話,用表達式${entry.key}取得鍵名。 用表達${entry.value}得到每個entry的值。這是因為java.util.Map.Entry對象有getKey和getValue方法,表達式語言遵守JavaBean的命名約定。

<% Map<String,String> map = new HashMap(); map.put("key1","value1"); map.put("key2","value2"); request.setAttribute("map",map); %> 對上面的map進行鍵值對遍歷 <c:forEach var="item" items="${map}"> ${item.key} - ${item.value} <br> </c:forEach>

對map根據鍵遍歷值

<c:forEach var="item" items="${map}"> ${item['key1']}<br> ${item['key2']}<br> </c:forEach> <% List<String> list = new ArrayList<String>(); list.add("str1"); list.add("str2"); List<String> list2 = new ArrayList<String>(); list2.add("str3"); list2.add("str4"); Map<String,List<String>> map = new HashMap();//(List<Map(k,v)>同理) map.put("list",list); map.put("list2",list2); request.setAttribute("map",map); %>

通過鍵獲得列表值,并遍歷列表

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

map中值為列表,直接遍歷列表中的每一項

<c:forEach var="item" items="${map}"> <c:forEach items="${item.value}" var="item2"> ${item2 } </c:forEach> </c:forEach>

但是要注意,如果你的numberMap是這樣的:

HashMap<Integer, String> numberMap= new HashMap<Integer, String>(); numberMap.put(0, "零"); numberMap.put(1, "一");

在jsp頁面中${numberMap[1]}將取不到值,因為el表達式中數字1是Long類型,無法匹配到numberMap中的Integer 1 。明白了原理,事兒就好辦了。修改numberMap:

HashMap<Long, String> map = new HashMap<Long, String>(); map.put(0L, "零"); map.put(1L, "一");

然后就可以啦${numberMap[1]}。

3. 數組

假設Controller中有數組 Char[] char={“1”.”2”}; request.setAttribute(“char”,char); ${char[1]} 數組中的對象 User[] users=new User[10]; for(int i=0;i<10;i++) { User u=new User(); u.setUsername(“U_”+i); users[i]=u; } request.setAttribute(“users”,users); ${users[1].username}

4. list集合(set集合同理)

List list=new ArrayList(); list.add(user1); list.add(user2); list.add(user3); request.setAttribute(“list”,list); 取單個值: ${list[3].username} 遍歷取值:<c:forEach var="user" items="${list}"> <c:out value="${user.username}" /> </c:forEach> 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的EL表达式取 Map、 List和数组的值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。