`

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

阅读更多

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

 

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

action代码如下:

 

Java代码 
  1. private  Map<String, List>map; /包含客户和取货人的map集合  
  2. private  List<TakerInfo>list; //取货人list   
  3. private  List<CustomerInfo> list2;   //客户list   
  4.   
  5. public  String getAllUserLs(){  
  6.       map=new  HashMap<String, List>();  
  7.         
  8.       list=takerInfoDao.getAllTakers();   //dao层实现省略,此处不是重点   
  9.       list2=customerInfoDao.getAllCus();    
  10.   
  11.       if (list.size()>0 &&list2.size()>0 )  
  12.       map.add("takers" ,list);  
  13.       map.add("customers" ,list2);  
  14.   
  15.       return  SUCCESS;  
  16. }  

 

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

 

Jsp代码 
  1. <s:iterator value="map3"  var="var" >  
  2.    <s:if test="#var.key=='takers'" >  
  3.      <s:iterator value="#var.value"  var="takerInfo" >  
  4.    <tr>  
  5.      <td >真实姓名:<s:property value="#takerInfo.RealName" /></td>  
  6.      <td >手机号码:<s:property value="#takerInfo.Cellphone" /></td>  
  7.    </tr>  
  8.   </s:iterator>  
  9.    </s:if><s:else>  
  10.    <s:iterator value="#var.value"  var="customerInfo" >  
  11.    <tr>  
  12.      <td  >真实姓名:<s:property value="#customerInfo.customerRealName" /></td>  
  13.      <td >手机号码:<s:property value="#customerInfo.customerCellphone" /></td>  
  14.    </tr>  
  15.    </s:iterator>  
  16.    </s:else>  
  17.    </s:iterator>  

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

 

 

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

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

 

action的代码如下:

 

Java代码 
  1.     private  List<Map<String, Object>> brandsMapList; //一个城市下所有品牌的map   
  2.     private  List<Map<String, Object>> regionMapList; //所有城市map,以此获得所有的城市的id   
  3.     private  Map<String, List<Map<String, Object>>> allBrandMap; //所有城市的,所有品牌map   
  4.   
  5.   
  6. public  String showAllBrand(){  
  7.         //实例化   
  8.        allBrandMap=new  HashMap<String, List<Map<String,Object>>>();  
  9.        //得到所有城市   
  10.        regionMapList=Dom4jUtil.parserXmlStr(carBrandService.getCitys());  
  11.   
  12.         for (int  i=0 ;i<regionMapList.size();i++){  
  13.                  //得到单个城市下的所有brand   
  14.                              brandsMapList=Dom4jUtil.parserXmlStr(carBrandService.getSelfDriveServiceCityBrands(regionMapList.get(i).get("id" ).toString()));  
  15.                     //所有城市下的,所有brand   
  16.                     allBrandMap.put(regionMapList.get(i).get("name" ).toString(), brandsMapList);  
  17.                }  
  18.   
  19.   
  20. }  

 

绑定该集合的jsp页面是:

 

Jsp代码 
  1. <s:iterator value="allBrandMap"  status="index"  var="citys" >  
  2.   <s:if test="#citys.value!=null" >  
  3.     <s:iterator value="#citys.value"  var="brand" >  
  4.   <tr>  
  5.     <td ><s:property value="#brand.name" /></td>  
  6.     <td ><s:property value="#citys.key" /> </td>  
  7.     <td >[查看][删除]</td>  
  8.   </tr>  
  9.     </s:iterator>  
  10.    </s:if>  
  11. </s:iterator>  
4
3
分享到:
评论
1 楼 一路既往 2013-01-08  

相关推荐

    struts2 表单数据绑定map、list等.rar

    本资源“struts2 表单数据绑定map、list等.rar”着重讲解了Struts2如何处理表单数据,特别是如何将表单数据绑定到Map和List等集合类型。了解这些内容对于构建动态、复杂的Web应用至关重要。 在Struts2中,数据绑定...

    Struts2 使用OGNL遍历map方法详解

    4. `private Map&lt;String, List&lt;Student&gt;&gt; listMap`: 存储学生列表,每个键对应一个包含多个Student对象的列表。 在`testMap()`方法中,我们为这些Map对象填充了示例数据。这些数据可以被传送到视图层进行展示。 接...

    SSH增删改查使用Map容器

    private Map&lt;String, Role&gt; roles = new HashMap&lt;&gt;(); // getters and setters } ``` 这里的`roles` Map将用户的ID作为键,Role对象作为值,映射到数据库中的关联表。 **4. Map容器在CRUD操作中的应用** 在SSH...

    Struts2中的参数传递

    &lt;form method="post" action="/struts-example/list-action"&gt; &lt;table&gt; &lt;tr&gt; &lt;th&gt;Name&lt;/th&gt; &lt;th&gt;Age&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;input type="text" name="users[0].name" value="Alice"/&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=...

    struts2标签库实验报告.docx

    - 配置Struts2框架,包括`&lt;struts&gt;`、`&lt;package&gt;`、`&lt;action&gt;`、`&lt;interceptor-ref&gt;`和`&lt;result&gt;`等标签。 - 例如,配置`&lt;package&gt;`标签时,设置`name="csg_taglib"`,`namespace="/taglib"`,`extends="struts-...

    jqGrid使用范例

    Map&lt;String, Object&gt; result = new HashMap&lt;&gt;(); result.put("total", totalPages); result.put("records", totalRecords); return result; } } ``` 在Struts2的配置文件中,需要声明这个Action和对应的...

    ognl表达式的用法

    - 第48行的`&lt;s:set&gt;`标签创建了一个名为`map`的Map对象,其键值对由一对花括号内的表达式定义:`{'1':'eeeee','2':'ddddd','3':'ccccc','4':'bbbbb','5':'aaaaa'}`。这实际上创建了一个`Map&lt;String, String&gt;`。 - ...

    Jquery+Struts2+JSON处理

    public Map&lt;String, Object&gt; getJson() { return Collections.singletonMap("data", data); } } ``` 这样,当你在jQuery的AJAX请求中指定URL为`yourAction.action`时,Struts2会返回JSON格式的`data`对象。 3...

    ognl表达式案例

    比如,如果Action类有一个`List&lt;String&gt; messages`属性,我们可以在JSP中使用`&lt;s:iterator value="messages"&gt;`标签遍历这个列表。 描述中提到的"ognl标签"是指Struts2提供的与OGNL相关的标签库,它们使得在JSP页面...

    spring mvc 文档

    protected Map&lt;String, Object&gt; onSubmit(User user) throws Exception { // 处理表单提交逻辑 return new HashMap&lt;&gt;(); } } ``` ##### 4.3 绑定多个字段 在实际应用中,经常需要在一个表单中绑定多个字段。...

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    testFreemarker

    Map&lt;String, Object&gt; model = new HashMap&lt;&gt;(); model.put("user", new User("张三")); // 渲染输出 Writer out = new StringWriter(); template.process(model, out); String result = out.toString(); ``` **5. ...

    Struts2中的OGNL

    - 表单回填:通过OGNL,Struts2可以将请求参数自动绑定到Action类的属性上,如 `&lt;s:textfield name="username" /&gt;`。 - 视图渲染:在JSP或FreeMarker模板中,可以直接使用OGNL表达式显示模型数据,如 `${user.name...

    Spring MVC面试题(2022最新版)

    - 响应实体对象:如`String`、`List`、`Map`等,通常配合`@ResponseBody`使用。 SpringMVC用什么对象从后台向前台传递数据的? 通常使用`Model`或`ModelMap`对象来从后台向前台传递数据。这两个对象都实现了`...

    ognl-2.6.11.jar源码

    Map&lt;String, Object&gt; context = new HashMap&lt;&gt;(); context.put("action", action); String expression = "action.name"; Object result = Ognl.getValue(expression, context, context); ``` 在这个例子中,`Ognl....

    struts2中OGNL的一些概念及原理说明

    在实际项目中,使用Struts2提供的迭代标签`&lt;s:iterator&gt;`可以在页面上方便地遍历集合。例如,要遍历一个客户列表,可以这样使用: ```xml &lt;s:iterator value="customerList" var="customer"&gt; &lt;s:property value="#...

    CXF入门.rar

    Apache CXF入门范例以及对传递ListMap类型的疑惑】中,可能会详细解释如何创建和调用一个使用CXF的Web服务,同时也可能讨论了在处理复杂数据类型如List&lt;Map&lt;String, Object&gt;&gt;时遇到的问题和解决方案。通常,CXF允许...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 ...

Global site tag (gtag.js) - Google Analytics