小菜毛毛技術(shù)分享

          與大家共同成長(zhǎng)

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

          1、迭代

                當(dāng)forEach 的items屬性中的表達(dá)式的值是java.util.Map時(shí),則var中命名的變量的類型就是java.util.Map.Entry。這時(shí) var=entry的話,用表達(dá)式${entry.key}取得鍵名。用表達(dá)式${entry.value}得到每個(gè)entry的值。這是因?yàn)? java.util.Map.Entry對(duì)象有g(shù)etKey和getValue方法,表達(dá)式語(yǔ)言遵守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、根據(jù)key求值

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

                 例:

          Html代碼
          1. <c:out value="${map[key]}" />  
          2. <!-- 這里的map就是 java.util.Map對(duì)像,key是這個(gè)map里的一個(gè) key -->  
          1、迭代
          Map的每個(gè)對(duì)象以key=value的形式給出
          當(dāng)forEach tag的item屬性中的表達(dá)式的值是java.util.Map時(shí),在var中命名的變量被設(shè)置為類型是java.util.Map.Entry的 item。這時(shí),迭代變量被稱為entry,因此,用表達(dá)式${entry.key}取得鍵名。
          在下面的例子中你會(huì)看到,可以用表達(dá) 式${entry.value}得到每個(gè)entry的值。這是因?yàn)閖ava.util.Map.Entry對(duì)象有g(shù)etKey和getValue方法,表 達(dá)式語(yǔ)言遵守JavaBean的命名約定。
          通常,JSP EL表達(dá)式${a.b.c.d}是用代碼a.getB().getC().getD()來計(jì)算的。這種表達(dá)式是對(duì)JavaBean屬性的相繼調(diào)用的簡(jiǎn)化。
          示例:
          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、根據(jù)key變量求值
          如果事先知道key那么很容易根據(jù)${map.key值}就可以得到值對(duì)象,但是如果key是一個(gè)變量呢?
          有一 個(gè)問題,如果給定一個(gè)key的變量如何使用EL得到對(duì)象呢,這里需要使用EL表達(dá)式中的[]來解決,解決方法如示例:
          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就是對(duì)應(yīng)于key值得book對(duì)象} -->     
          24.     <br>     
          25.   </body>     
          26. </html:html>   
          posted on 2010-07-05 15:05 小菜毛毛 閱讀(21144) 評(píng)論(2)  編輯  收藏 所屬分類: JSTL

          Feedback

          # re: JSTL對(duì)Map集合的操作 2015-06-08 17:31
          二  回復(fù)  更多評(píng)論
            

          # re: JSTL對(duì)Map集合的操作 2015-06-08 17:31
          額頭  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 永修县| 商洛市| 定远县| 澳门| 金溪县| 乳山市| 娱乐| 崇义县| 金华市| 瓮安县| 民丰县| 绍兴市| 镇远县| 阿图什市| 永清县| 延庆县| 乌什县| 广西| 林西县| 赤峰市| 关岭| 砚山县| 怀宁县| 棋牌| 会宁县| 九龙县| 南京市| 织金县| 友谊县| 子长县| 常宁市| 台北县| 从化市| 台南县| 平昌县| 大化| 通渭县| 阿勒泰市| 安义县| 福鼎市| 宜都市|