浏览 1968 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-08-31
最后修改:2012-08-31
一.概述 首先介绍一下map、mapkey标签 map标签有两个作用: 1.用来迭代展示map中的所有对象详细信息,map标签展示的数据可以从request,session,pagecontext中获取,也可以嵌套在list,beaninfo,map标签中使用。 2.用来输出map中的某个值 mapkey标签在map标签中使用,用来输出map中的key值。 map中value可以为各种复杂的对象类型,value可以为普通的bean对象,基础数据类型,list/map/数组等容器对象。 map包括以下主要属性: requestKey:指定map对象存储在request中的key名称 colName:map对象来源于bean属性名称 keycell:只展示map中的一个数据,指定map所对应的外围容器中当前记录对象作为key值,map标签然后获取key对应的value,map标签中内置的cell标签、逻辑标签、list标签都可以展示value对象中包含的数据 key:只展示map中的一个数据,指定map数据key,从map中获取key对应的value,map标签中内置的cell标签、逻辑标签、list标签都可以展示value对象中包含的数据 keycolName:只展示map中的一个数据,指定map所对应的外围容器中对象中的属性名称,key的由该属性对应的值指定,map标签然后获取key对应的value,map标签中内置的cell标签、逻辑标签、list标签都可以展示value对象中包含的数据 二、案例描述如下 map的类型为Map<String,List<Exampbean>>,也就是key类型为String,我们会将所有的key按顺序放置到一个List<String>中,然后再list标签遍历key,然后用遍历到得key获取map中的List<Exampbean>集合,然后再用list标签遍历输出List<Exampbean>中对象属性;也会直接遍历输出map中的数据,可以看看有序的map和无序的map输出直接的区别。 三、案例实现 1.首先在控制器方法中构造我们需要的数据结构: public String listmap(ModelMap model) { //将所有的key放到nameList中 List<String> nameList = new ArrayList<String>(); nameList.add("handlerModel"); nameList.add("applyUnionModel"); nameList.add("billLoanModel"); nameList.add("loanPayModel"); nameList.add("budgetModel"); nameList.add("outgoModel"); nameList.add("billItemModel"); nameList.add("billAttachment"); nameList.add("billSapModel"); //构造每个key对应的List<ExampleBean>数据并放到Map<String,List<ExampleBean>> billDataMap变量中 Map<String,List<ExampleBean>> billDataMap = new HashMap<String,List<ExampleBean>>(); List<ExampleBean> datas = new ArrayList<ExampleBean>();//定义List<ExampleBean>集合,为了示例的简单,每个集合中只放一个ExampleBean类型对象 ExampleBean bean = new ExampleBean(); bean.setName("handlerModel"); bean.setSex("男"); datas.add(bean); billDataMap.put("handlerModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("applyUnionModel"); bean.setSex("女"); datas.add(bean); billDataMap.put("applyUnionModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("billLoanModel"); bean.setSex("男"); datas.add(bean); billDataMap.put("billLoanModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("loanPayModel"); bean.setSex("女"); datas.add(bean); billDataMap.put("loanPayModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("budgetModel"); bean.setSex("男"); datas.add(bean); billDataMap.put("budgetModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("outgoModel"); bean.setSex("女"); datas.add(bean); billDataMap.put("outgoModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("billItemModel"); bean.setSex("女"); datas.add(bean); billDataMap.put("billItemModel",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("billAttachment"); bean.setSex("男"); datas.add(bean); billDataMap.put("billAttachment",datas);//put数据到map中 datas = new ArrayList<ExampleBean>(); bean = new ExampleBean(); bean.setName("billSapModel"); bean.setSex("未知"); datas.add(bean); billDataMap.put("billSapModel",datas);//put数据到map中 model.addAttribute("nameList", nameList);//将名称列表放到控制器数据容器中 model.addAttribute("billDataMap", billDataMap);//将map数据放到控制器数据容器中 return "path:listmap";//跳转到数据展示页面 } 2.控制器配置文件: <properties> <property name="/examples/*.page" path:listmap="/examples/listmap.jsp" class="org.frameworkset.mvc.HelloWord"> </property> </properties> 3.jsp实现代码,包含三部分内容: 1.直接通过list标签输出nameList中的所有key 2.根据list中key的顺序有序遍历并输出map中list中保持的bean的属性值 3.直接遍历并输出map中list中保持的bean的属性值 详细代码如下: <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="/WEB-INF/pager-taglib.tld" prefix="pg"%> <div class="detail"> <div class="tab"> 1.直接通过list标签输出nameList中的所有key <ul id="tabul"> <pg:list requestKey="nameList"> <li class="current"><a href="javascript:void(0);"><pg:cell /></a></li> </pg:list> </ul> <div class="tabdiv"> <span></span> </div> </div> <div class="pannle"> 2.根据list中key的顺序有序遍历并输出map中list中保持的bean的属性值 <ol> <pg:list requestKey="nameList"> <pg:equal value="handlerModel"><!-- 经办列表,不同的值遍历输出的信息不一样 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="applyUnionModel"><!-- 关联申请 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="billLoanModel"><!-- 借款列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="loanPayModel"><!-- 冲账列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="budgetModel"><!-- 预算列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="outgoModel"><!-- 分摊列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="billItemModel"><!-- 收款列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="billAttachment"><!-- 附件列表 --> <pg:map requestKey="billDataMap" keycell="true"><!-- 获取当前key对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> <pg:equal value="billSapModel"><!-- SAP列表信息 演示key属性,通过key属性直接获取map中的list值--> <pg:map requestKey="billDataMap" key="billSapModel"><!-- 直接指定key=billSapModel,获取对应的list进行展示 --> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </pg:equal> </pg:list> </ol> </div> <div class="pannle"> 3.直接遍历并输出map中list中保持的bean的属性值 <ol> <pg:map requestKey="billDataMap"> <li class="pannelol"><span></span> <pg:list><!-- 直接遍历输出map中存储的list,同理也可以直接遍历输出map中存储的map和数组 --> <ul> <li><label>名称:</label><pg:cell colName="name" /></li> <li><label>性别:</label><pg:cell colName="sex" /></li> </ul> </pg:list></li> </pg:map> </ol> </div> </div> 四、总结 bboss标签库提供了一系列的数据展示标签、逻辑标签、国际化标签,可以非常方便地在jsp页面中输出各种复杂的数据结构,本文着重介绍了map标签如何与list、cell标签组合实现map数据的有序输出,展示了bboss标签库的独特数据展示能力。 更加详细介绍bboss标签库参考文档如下: bbossgroups标签使用大全 bbossgroups标签库使用大全(续) 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-08-31
bboss标签库的特色之一就是cell,map,list等数据展示标签不带任何html元素,只输出单纯的数据;因此他们被广泛地适用于基于html 5开发的各种移动web应用;广泛地使用于传统的web应用。
|
|
返回顶楼 | |