小菜毛毛技術分享

          與大家共同成長

            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 小菜毛毛 閱讀(21144) 評論(2)  編輯  收藏 所屬分類: JSTL

          Feedback

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 旬邑县| 兴国县| 民权县| 东台市| 阿荣旗| 错那县| 汤原县| 即墨市| 兴仁县| 罗城| 政和县| 资阳市| 通江县| 德钦县| 南投县| 阿合奇县| 霍山县| 清徐县| 海原县| 保山市| 邵阳县| 上高县| 内丘县| 澄迈县| 铁岭县| 崇文区| 宁远县| 扎赉特旗| 天等县| 台中县| 密山市| 石柱| 文登市| 留坝县| 宁城县| 闽侯县| 扶绥县| 安仁县| 高密市| 建瓯市| 鱼台县|