bboss中的map标签结合list标签/cell标签展示复杂数据结构案例

bboss中的map标签结合list标签/cell标签展示复杂数据结构案例

一.概述
首先介绍一下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>


再举个keycolName属性使用的例子:
<pg:list requestKey="nameList">
<pg:map requestKey="billDataMap" keycolName="name">
对应的key:<pg:mapkey/>
对应的value:<pg:cell/>
</pg:map>
</pg:list>
这个例子的含义是,根据list中对象属性name获取map 对象billDataMap中和name对应的值并输出这个key和value

四、总结
bboss标签库提供了一系列的数据展示标签、逻辑标签、国际化标签,可以非常方便地在jsp页面中输出各种复杂的数据结构,本文着重介绍了map标签如何与list、cell标签组合实现map数据的有序输出,展示了bboss标签库的独特数据展示能力。
更加详细介绍bboss标签库参考文档如下:
[url=http://yin-bp.iteye.com/blog/1136924]bbossgroups标签使用大全[/url]
[url=http://yin-bp.iteye.com/blog/1137674]bbossgroups标签库使用大全(续)[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值