小菜毛毛技術分享

          與大家共同成長

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

          1、迭代

                當forEach 的items屬性中的表達式的值是java.util.Map時,則var中命名的變量的類型就是java.util.Map.Entry。這時 var=entry的話,用表達式${entry.key}取得鍵名。用表達式${entry.value}得到每個entry的值。這是因為 java.util.Map.Entry對象有getKey和getValue方法,表達式語言遵守JavaBean的命名約定。

               例:

          Html代碼
          1. <c:forEach items="${map}" var="entry">  
          2.        <c:out value="${entry.key}" />  
          3.         <c:out value="${entry.value}" />  
          4. </c:forEach>  

          2、根據key求值

                如果事先知道key那么很容易根據${map.key值}就可以得到值對象,但是如果key是一個變量呢?有一個問題,如果給定一個key的變量如何使用 EL得到對象呢,這里需要使用EL表達式中的[]來解決。

                 例:

          Html代碼
          1. <c:out value="${map[key]}" />  
          2. <!-- 這里的map就是 java.util.Map對像,key是這個map里的一個 key -->  
          1、迭代
          Map的每個對象以key=value的形式給出
          當forEach tag的item屬性中的表達式的值是java.util.Map時,在var中命名的變量被設置為類型是java.util.Map.Entry的 item。這時,迭代變量被稱為entry,因此,用表達式${entry.key}取得鍵名。
          在下面的例子中你會看到,可以用表達 式${entry.value}得到每個entry的值。這是因為java.util.Map.Entry對象有getKey和getValue方法,表 達式語言遵守JavaBean的命名約定。
          通常,JSP EL表達式${a.b.c.d}是用代碼a.getB().getC().getD()來計算的。這種表達式是對JavaBean屬性的相繼調用的簡化。
          示例:
          Html代碼
          1. <%@ page language="java" pageEncoding="utf-8"%>  
          2. <jsp:directive.page import="com.xaccp.vo.BookAdapter"/>  
          3. <%@ taglib prefix="c" uri="/WEB-INF/c.tld"  %>  
          4. <jsp:directive.page import="java.util.Hashtable"/>  
          5. <jsp:directive.page import="com.xaccp.vo.Book"/>  
          6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
          7. <html:html locale="true">  
          8.   <head>  
          9.    <%  
          10.      Hashtable table=new Hashtable();  
          11.      BookAdapter ba=new BookAdapter();  
          12.      table.put("aaa",new Book(1,"abc"));  
          13.      table.put("bbb",new Book(2,"bbb"));  
          14.      table.put("ccc",new Book(3,"cccc"));  
          15.      pageContext.setAttribute("table",table);  
          16.     %>  
          17.   </head>  
          18.    
          19.   <body>  
          20.   
          21.     <hr>  
          22.     <c:forEach items="${table}" var="aaa">  
          23.      <c:set var="key" value="${aaa.key}" ></c:set>  
          24.      <c:set var="book" value="${aaa.value}"></c:set>  
          25.       ${key }=${book }111  name:${book.bookID}<br>  
          26.   
          27.     </c:forEach>  
          28.   </body>  
          29. </html:html>  
          30.   
          31.    
           2、根據key變量求值
          如果事先知道key那么很容易根據${map.key值}就可以得到值對象,但是如果key是一個變量呢?
          有一 個問題,如果給定一個key的變量如何使用EL得到對象呢,這里需要使用EL表達式中的[]來解決,解決方法如示例:
          Html代碼
          1. <%@ page language="java" pageEncoding="utf-8"%>     
          2. <jsp:directive.page import="com.xaccp.vo.BookAdapter"/>     
          3. <%@ taglib prefix="c" uri="/WEB-INF/c.tld"  %>     
          4. <jsp:directive.page import="java.util.Hashtable"/>     
          5. <jsp:directive.page import="com.xaccp.vo.Book"/>     
          6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">     
          7. <html:html locale="true">     
          8.   <head>     
          9.    <%     
          10.      Hashtable table=new Hashtable();     
          11.      table.put("aaa",new Book(1,"abc"));     
          12.      table.put("bbb",new Book(2,"bbb"));     
          13.      table.put("ccc",new Book(3,"cccc"));     
          14.      pageContext.setAttribute("table",table);     
          15.     %>     
          16.   </head>     
          17.       
          18.   <body>     
          19.     This a struts page. <br>     
          20.     <c:set var="keys" value="bbb" ></c:set>     
          21.     <c:set var="book" value="${pageScope.table[pageScope.keys]}"></c:set>     
          22.  ${keys }=${book}     
          23. <!-- 這里的${book就是對應于key值得book對象} -->     
          24.     <br>     
          25.   </body>     
          26. </html:html>   
          posted on 2010-07-05 15:05 小菜毛毛 閱讀(21136) 評論(2)  編輯  收藏 所屬分類: JSTL

          Feedback

          # re: JSTL對Map集合的操作 2015-06-08 17:31
          二  回復  更多評論
            

          # re: JSTL對Map集合的操作 2015-06-08 17:31
          額頭  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 荆门市| 嘉义县| 郴州市| 东宁县| 新巴尔虎左旗| 甘泉县| 罗甸县| 富裕县| 芒康县| 宁武县| 枝江市| 绵竹市| 横山县| 张家港市| 望谟县| 车致| 肥乡县| 多伦县| 沧州市| 容城县| 邮箱| 洛南县| 潞西市| 宁明县| 松溪县| 九台市| 江口县| 红安县| 新民市| 仁寿县| 温州市| 沙湾县| 民权县| 板桥市| 湘潭县| 华亭县| 绥芬河市| 广元市| 汽车| 天长市| 光山县|