`

struts标签绑定Map<String, List<Map<String, Object>>>

阅读更多

早先时候已经有一篇写到struts的iterator标签去遍历些基本的集合数据了,比如单个对象的List啊,多个对象的List啊,map等等。最近呢又遇见两种情况,在这里给记录一下,方便自己以后能随时查看,也希望能在一定程度上帮助到大家。

 

第一种情况是,这里首先有两个表,一个表是客户表(CustomerInfo),一个表是收货人表(TakerInfo),两个表中,都有姓名(name)和电话(cellphone)的属性,根据页面输入的一系列条件,如name,cellphone等去查询两表,得到一个存放着customerinfo和takerinfo的集合。并将这个集合绑定到页面,并标示出,这个人是来自于客户表,还是来自于收货人表。

action代码如下:

 

private Map<String, List>map; /包含客户和取货人的map集合
private List<TakerInfo>list; //取货人list
private List<CustomerInfo> list2;   //客户list

public String getAllUserLs(){
      map=new HashMap<String, List>();
      
      list=takerInfoDao.getAllTakers();   //dao层实现省略,此处不是重点
      list2=customerInfoDao.getAllCus();  

      if(list.size()>0&&list2.size()>0)
      map.add("takers",list);
      map.add("customers",list2);

      return SUCCESS;
}

 

  绑定该map的页面代码如下:

 

 <s:iterator value="map3" var="var">
    <s:if test="#var.key=='takers'">
      <s:iterator value="#var.value" var="takerInfo">
    <tr>
      <td >真实姓名:<s:property value="#takerInfo.RealName"/></td>
      <td >手机号码:<s:property value="#takerInfo.Cellphone"/></td>
    </tr>
   </s:iterator>
    </s:if><s:else>
    <s:iterator value="#var.value" var="customerInfo">
    <tr>
      <td  >真实姓名:<s:property value="#customerInfo.customerRealName"/></td>
      <td >手机号码:<s:property value="#customerInfo.customerCellphone"/></td>
    </tr>
    </s:iterator>
    </s:else>
    </s:iterator>

  上面页面和代码我都尽量写得最清楚直白了,方便大家理解,很多方法的实现或者页面上的其他字段,样式,js我都抹掉了。

 

 

第二种情况是,有一个得到所有城市的接口[返回的值里存有城市名称和城市的id等信息],有一个根据单个城市id得到这个城市下,所有车辆品牌的接口[返回的值里,存有一个城市下的所有车辆的品牌id,品牌名称等信息]。

这里需要实现就是,在一个页面上,显示出所有车辆品牌名称,并显示它是属于哪个城市下的,如有是上海有10个车辆品牌,武汉有10个车辆品牌,你得显示这20辆车的详细,并指出它是哪个城市下的。

 

action的代码如下:

 

    private List<Map<String, Object>> brandsMapList; //一个城市下所有品牌的map
    private List<Map<String, Object>> regionMapList; //所有城市map,以此获得所有的城市的id
    private Map<String, List<Map<String, Object>>> allBrandMap; //所有城市的,所有品牌map


public String showAllBrand(){
        //实例化
       allBrandMap=new HashMap<String, List<Map<String,Object>>>();
       //得到所有城市
       regionMapList=Dom4jUtil.parserXmlStr(carBrandService.getCitys());

        for(int i=0;i<regionMapList.size();i++){
                 //得到单个城市下的所有brand
                             brandsMapList=Dom4jUtil.parserXmlStr(carBrandService.getSelfDriveServiceCityBrands(regionMapList.get(i).get("id").toString()));
                    //所有城市下的,所有brand
                    allBrandMap.put(regionMapList.get(i).get("name").toString(), brandsMapList);
               }


}
 

绑定该集合的jsp页面是:

	    <s:iterator value="allBrandMap" status="index" var="citys">
	      <s:if test="#citys.value!=null">
	    	<s:iterator value="#citys.value" var="brand">
			    <tr>
			      <td ><s:property value="#brand.name"/></td>
			      <td ><s:property value="#citys.key"/> </td>
			      <td >[查看][删除]</td>
			    </tr>
	    	</s:iterator>
	       </s:if>
	    </s:iterator>
 

 

分享到:
评论

相关推荐

    logic:iterate标签当遍历的collection为Map时的使用

    Map里存放的是List时&lt;br&gt;&lt;br&gt;&lt;logic:iterate id="destMap" name="srcMap"&gt;&lt;br&gt;&lt;br&gt; &lt;logic:iterate id="bean" name="destMap" property="value" /&gt;&lt;br&gt;&lt;br&gt; &lt;bean:write name="bean" property="name" /&gt;&lt;br&gt;&lt;br&gt; &lt;/...

    struts 标签 logic:iterate使用 logic:iterate

    DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;&lt;br&gt;&lt;html&gt;&lt;br&gt; &lt;head&gt;&lt;br&gt; &lt;/head&gt;&lt;br&gt; &lt;body&gt;&lt;br&gt; &lt;table&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; &lt;td&gt;&lt;%@ include file="../menu.txt"%&gt;&lt;br&gt; &lt;/td&gt;&lt;br&gt; &lt;/tr&gt;...

    struts_jstl

    &lt;/tr&gt;&lt;br&gt; &lt;/c:forEach&gt;&lt;br&gt; &lt;/table&gt;&lt;br&gt; &lt;p&gt;&lt;br&gt; &lt;li&gt;循环控制标签:c:foreach&lt;/li&gt;&lt;br&gt;&lt;br&gt; &lt;table border="1"&gt;&lt;br&gt; &lt;tr&gt;&lt;br&gt; &lt;td&gt;姓名&lt;/td&gt;&lt;br&gt; &lt;td&gt;年龄&lt;/td&gt;&lt;br&gt; &lt;td&gt;所属组&lt;/td&gt;&lt;br&gt; &lt;/tr&gt;&lt;br&gt; &lt;c:forEach var...

    struts2 <s:if>标签使用

    struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用struts2 &lt;s:if&gt;标签使用

    怎样遍历一个HashMap?

    可以通过2种方法遍历HashMap&lt;br&gt;&lt;br&gt;Map map = new HashMap();&lt;br&gt;&lt;br&gt;for (Iterator iter = map.entrySet().iterator(); iter.hasNext();...&lt;br&gt;&lt;br&gt; Object val = map.get(key);&lt;br&gt;&lt;br&gt;} &lt;br&gt;&lt;br&gt;

    解决struts2.1.6+spring+hibernate 中文乱码

    &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; &lt;filter-class&gt; org.apache.struts2.dispatcher.ActionContextCleanUp &lt;/filter-class&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;struts-cleanup&lt;/filter-name&gt; ...

    北大青鸟第二学年4.0 Y2所有资料 三

    北大青鸟第二学年4.0 Y2所有资料 三&lt;br&gt;&lt;br&gt;我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第 三部分&lt;br&gt;&lt;br&gt;大家下载时要记得评分,这样你们就不要资源分了&lt;br&gt;&lt;br&gt;Struts&& JSF&lt;br&gt;&lt;br&gt;Oracle&lt;br&gt;&lt;br&gt;...

    北大青鸟第二学年4.0 Y2所有资料 一

    北大青鸟第二学年4.0 Y2所有资料 一&lt;br&gt;&lt;br&gt;我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第一部分&lt;br&gt;&lt;br&gt;大家下载时要记得评分,这样你们就不要资源分了&lt;br&gt;&lt;br&gt;Struts&& JSF&lt;br&gt;&lt;br&gt;Oracle&lt;br&gt;&lt;br&gt;...

    北大青鸟第二学年4.0 Y2所有资料 五

    北大青鸟第二学年4.0 Y2所有资料 五&lt;br&gt;&lt;br&gt;我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第五部分&lt;br&gt;&lt;br&gt;大家下载时要记得评分,这样你们就不要资源分了&lt;br&gt;&lt;br&gt;Struts&& JSF&lt;br&gt;&lt;br&gt;Oracle&lt;br&gt;&lt;br&gt;...

    北大青鸟第二学年4.0 Y2所有资料 二

    北大青鸟第二学年4.0 Y2所有资料 二&lt;br&gt;&lt;br&gt;我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第二部分&lt;br&gt;&lt;br&gt;大家下载时要记得评分,这样你们就不要资源分了&lt;br&gt;&lt;br&gt;Struts&& JSF&lt;br&gt;&lt;br&gt;Oracle&lt;br&gt;&lt;br&gt;...

    JSP+Struts+JSTL+EL新闻发布系统jsp

    &lt;td width="594" height="16" valign="top" background="/images/index_13.jpg"&gt;&lt;script language='JavaScript' type='text/JavaScript' src='/Article/js/menu.js'&gt;&lt;/script&gt; &lt;script type='text/javascript' ...

    Struts2实现分页

    ArrayList&lt;Users&gt; list; UserService service; Users user; Pager page=new Pager(); public Pager getPage() { return page; } public void setPage(Pager page) { this.page = page; } public ...

    使用Struts的Action来对数据库进行增、删、改、查四项操作(源码)

    autoReconnect=true&useUnicode=true&characterEncoding=GB2312&lt;/value&gt;&lt;br/&gt; &lt;/parameter&gt;&lt;br/&gt; &lt;parameter&gt;&lt;br/&gt; &lt;name&gt;username&lt;/name&gt;&lt;br/&gt; &lt;value&gt;root&lt;/value&gt;&lt;br/&gt; &lt;/parameter&gt;&lt;br/&gt; &lt;parameter&gt;&lt;br/&gt; &lt;name...

    Struts迭代器(iterator)遍历List常用的4种例子

    相反,显示的数据表格行和列不确定,此时用实体类(UserEntity)迭代的方式很难实现,只能用List&lt;String&gt;或List&lt;List&lt;String&gt;&gt;实现了。 运行效果及代码解释请参考我的博客园:...

    struts标签(如<html:form>)

    关于STRUTS标签的一些详细说明。 如:&lt;html:form&gt;的说明。

    struts2.0中文教程

    &lt;br&gt;04 在Struts 2.0中国际化(i18n)您的应用程序&lt;br&gt;05 转换器(Converter)——Struts 2.0中的魔术师&lt;br&gt;06 在Struts 2.0中实现表单数据校验(Validation)&lt;br&gt;07 Struts 2的基石——拦截器(Interceptor)&lt;br&gt;08 ...

    struts框架jar包

    struts-1.3.8 包(&lt;br&gt;&lt;br&gt;antlr-2.7.2.jar&lt;br&gt;bsf-2.3.0.jar&lt;br&gt;commons-beanutils-1.7.0.jar&lt;br&gt;commons-chain-1.1.jar&lt;br&gt;commons-digester-1.8.jar&lt;br&gt;commons-fileupload-1.1.1.jar&lt;br&gt;commons-io-1.1.jar&lt;br&gt;...

    基于Struts+Hibenater

    &lt;%@ page language="java" import="java.util.*" pageEncoding="GB18030"%&gt; &lt;% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request....

    使用Struts的Action和Hibernate来对数据库进行增、删、改、查四项操作(源码)

    autoReconnect=true&useUnicode=true&characterEncoding=GB2312&lt;/value&gt;&lt;br/&gt; &lt;/parameter&gt;&lt;br/&gt; &lt;parameter&gt;&lt;br/&gt; &lt;name&gt;username&lt;/name&gt;&lt;br/&gt; &lt;value&gt;root&lt;/value&gt;&lt;br/&gt; &lt;/parameter&gt;&lt;br/&gt; &lt;parameter&gt;&lt;br/&gt; &lt;name...

    struts标签 <write><logic>

    可以直接运行 , 可以editplues 也可以看内容

Global site tag (gtag.js) - Google Analytics