JSTL对Map集合的操作

标签: jstl map 集合 | 发表时间:2014-02-20 15:08 | 作者:paladin1988
出处:http://www.iteye.com

 

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的命名约定。

 

    

例:

  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表达式中的[]来解决。

 

      

例:

  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属性的相继调用的简化。

示例:

<%@ page language="java" pageEncoding="utf-8"%>
<jsp:directive.page import="com.xaccp.vo.BookAdapter"/>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"  %>
<jsp:directive.page import="java.util.Hashtable"/>
<jsp:directive.page import="com.xaccp.vo.Book"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
  <head>
   <%
     Hashtable table=new Hashtable();
     BookAdapter ba=new BookAdapter();
     table.put("aaa",new Book(1,"abc"));
     table.put("bbb",new Book(2,"bbb"));
     table.put("ccc",new Book(3,"cccc"));
     pageContext.setAttribute("table",table);
    %>
  </head>
 
  <body>

    <hr>
    <c:forEach items="${table}" var="aaa">
     <c:set var="key" value="${aaa.key}" ></c:set>
     <c:set var="book" value="${aaa.value}"></c:set>
      ${key }=${book }111  name:${book.bookID}<br>

    </c:forEach>
  </body>
</html:html>

 

 

 

 2、根据key变量求值

 

如果事先知道key那么很容易根据${map.key值}就可以得到值对象,但是如果key是一个变量呢?
有一 个问题,如果给定一个key的变量如何使用EL得到对象呢,这里需要使用EL表达式中的[]来解决,解决方法如示例:

 

<%@ page language="java" pageEncoding="utf-8"%>   
<jsp:directive.page import="com.xaccp.vo.BookAdapter"/>   
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"  %>   
<jsp:directive.page import="java.util.Hashtable"/>   
<jsp:directive.page import="com.xaccp.vo.Book"/>   
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
<html:html locale="true">   
  <head>   
   <%   
     Hashtable table=new Hashtable();   
     table.put("aaa",new Book(1,"abc"));   
     table.put("bbb",new Book(2,"bbb"));   
     table.put("ccc",new Book(3,"cccc"));   
     pageContext.setAttribute("table",table);   
    %>   
  </head>   
    
  <body>   
    This a struts page. <br>   
    <c:set var="keys" value="bbb" ></c:set>   
    <c:set var="book" value="${pageScope.table[pageScope.keys]}"></c:set>   
 ${keys }=${book}   
<!-- 这里的${book就是对应于key值得book对象} -->   
    <br>   
  </body>   
</html:html>  

 

 

 

 

 

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [jstl map 集合] 推荐:

JSTL对Map集合的操作

- - 企业架构 - ITeye博客
      当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是java.util.Map.Entry. 这时 var=entry的话,用表达式${entry.key}取得键名. 用表达式${entry.value}得到每个entry的值. 这是因为 java.util.Map.Entry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定.

jstl标签经典

- - CSDN博客推荐文章
库 :Core(核心库). 描述 : 标签是一个最常用的标签,用于在   JSP   中显示数据.  它的作用是用来替代通过 JSP 内   置对象 out 或者 <%=%> 标签来输出对象的值. 用于指定在使用  标记输出诸如“ < ”、“ > ”、“ ’ ”、“” ”和“ & ”之类的字符(在  HTML  和  XML  中具有特殊意义)时是否应该进行转义.

JavaScript Source Map 详解

- - 阮一峰的网络日志
上周, jQuery 1.9发布. 这是2.0版之前的最后一个新版本,有很多新功能,其中一个就是支持Source Map. 访问 http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js,打开压缩后的版本,滚动到底部,你可以看到最后一行是这样的:.

Hibernate调优之select new map()

- - CSDN博客架构设计推荐文章
        Hibernate调优不只是设置一下lazy,调整一下由谁来维护这个字段而已.         这次要说的是对查询语句进行优化——select new map().         select new map语句结果说明.         语句一:.         结果list中,每条记录对应一个object数组,object[]中每个元素为hql语句中列的序号(从0开始).

基于的Map/Reduce的ItemCF

- - M.J.
ItemCF为基于邻域的方法使用用户共同行为来对Item之间的相似度进行计算,从而利用k-近邻算法使用用户曾经有个行为的Item进行推荐. 好处是系统只需要存储Item x Item的相似度矩阵,对于Item数量远小于用户数量的应用来说,具有很高的性价比. ItemCF最核心的计算为item之间相似度矩阵的计算,同时还需要能够在短时间内响应Item变化情况(用户有行为之后就会造成相似度矩阵的重新计算,实际中不会全部重新计算而会使用增量计算的方式.

【JSP】JSTL核心标签库的使用方法和示例

- - CSDN博客Web前端推荐文章
 JSTL 核心标签库标签共有13个,功能上分为4类:. 表达式控制标签:out、set、remove、catch. 流程控制标签:if、choose、when、otherwise. 循环标签:forEach、forTokens. URL操作标签:import、url、redirect. 使用标签时,一定要在jsp文件头加入以下代码:.

【转载】在Google Map上玩LEGO

- - HTML5研究小组
Google又放出了很帅又充满了Google式小清新风格的HTML5在线游戏,这次和LEGO合作——在Google Map上砌LEGO积木:. 这个游戏不知道是哪个和我一样买不起房的屌丝想出来的,不知道梦见几次在地球上某个有待开荒的土地上占一个山头盖属于自己的房子之后用满腔的热血把它做出来了. 不过貌似只能选择在大洋洲范围内的土地,估计开发者是那边的穷矮矬.

开发基于 Google Map 的 Android 应用

- - 博客 - 伯乐在线
简介: 随着移动互联网应用的迅速发展,利用智能手机提供的实时地理位置信息服务功能扩展出众多 LBS(Location Based Service) 应用,将实时地理位置信息与手机的便捷、移动特性结合,为人们提供多种多样的应用场景,比如实时定位、导航、搜索周围好友、基于地理位置的信息推荐等. 本文通过实例介绍如何开发基于 Google Map 的 Android 应用.

mapreduce中map个数的确定

- - CSDN博客云计算推荐文章
      在map阶段读取数据前,FileInputFormat会将输入文件分割成split. 影响map个数,即split个数的因素主要有:. 1)HDFS块的大小,即HDFS中dfs.block.size的值. 如果有一个输入文件为1024m,当块为. 256m时,会被划分为4个split;当块为128m时,会被划分为8个split.

Spark map-side-join 关联优化 - 简书

- -
将多份数据进行关联是数据处理过程中非常普遍的用法,不过在分布式计算系统中,这个问题往往会变的非常麻烦,因为框架提供的 join 操作一般会将所有数据根据 key 发送到所有的 reduce 分区中去,也就是 shuffle 的过程. 造成大量的网络以及磁盘IO消耗,运行效率极其低下,这个过程一般被称为 reduce-side-join.