早先时候已经有一篇写到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>
分享到:
相关推荐
Map里存放的是List时<br><br><logic:iterate id="destMap" name="srcMap"><br><br> <logic:iterate id="bean" name="destMap" property="value" /><br><br> <bean:write name="bean" property="name" /><br><br> </...
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br><html><br> <head><br> </head><br> <body><br> <table><br> <tr><br> <td><%@ include file="../menu.txt"%><br> </td><br> </tr>...
</tr><br> </c:forEach><br> </table><br> <p><br> <li>循环控制标签:c:foreach</li><br><br> <table border="1"><br> <tr><br> <td>姓名</td><br> <td>年龄</td><br> <td>所属组</td><br> </tr><br> <c:forEach var...
struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用struts2 <s:if>标签使用
可以通过2种方法遍历HashMap<br><br>Map map = new HashMap();<br><br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();...<br><br> Object val = map.get(key);<br><br>} <br><br>
<filter-name>struts-cleanup</filter-name> <filter-class> org.apache.struts2.dispatcher.ActionContextCleanUp </filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> ...
北大青鸟第二学年4.0 Y2所有资料 三<br><br>我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第 三部分<br><br>大家下载时要记得评分,这样你们就不要资源分了<br><br>Struts&& JSF<br><br>Oracle<br><br>...
北大青鸟第二学年4.0 Y2所有资料 一<br><br>我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第一部分<br><br>大家下载时要记得评分,这样你们就不要资源分了<br><br>Struts&& JSF<br><br>Oracle<br><br>...
北大青鸟第二学年4.0 Y2所有资料 五<br><br>我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第五部分<br><br>大家下载时要记得评分,这样你们就不要资源分了<br><br>Struts&& JSF<br><br>Oracle<br><br>...
北大青鸟第二学年4.0 Y2所有资料 二<br><br>我已经把第二学年所有的课件打包在一起了,一共有5部分,这是第二部分<br><br>大家下载时要记得评分,这样你们就不要资源分了<br><br>Struts&& JSF<br><br>Oracle<br><br>...
<td width="594" height="16" valign="top" background="/images/index_13.jpg"><script language='JavaScript' type='text/JavaScript' src='/Article/js/menu.js'></script> <script type='text/javascript' ...
ArrayList<Users> list; UserService service; Users user; Pager page=new Pager(); public Pager getPage() { return page; } public void setPage(Pager page) { this.page = page; } public ...
autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value><br/> </parameter><br/> <parameter><br/> <name>username</name><br/> <value>root</value><br/> </parameter><br/> <parameter><br/> <name...
相反,显示的数据表格行和列不确定,此时用实体类(UserEntity)迭代的方式很难实现,只能用List<String>或List<List<String>>实现了。 运行效果及代码解释请参考我的博客园:...
关于STRUTS标签的一些详细说明。 如:<html:form>的说明。
<br>04 在Struts 2.0中国际化(i18n)您的应用程序<br>05 转换器(Converter)——Struts 2.0中的魔术师<br>06 在Struts 2.0中实现表单数据校验(Validation)<br>07 Struts 2的基石——拦截器(Interceptor)<br>08 ...
struts-1.3.8 包(<br><br>antlr-2.7.2.jar<br>bsf-2.3.0.jar<br>commons-beanutils-1.7.0.jar<br>commons-chain-1.1.jar<br>commons-digester-1.8.jar<br>commons-fileupload-1.1.1.jar<br>commons-io-1.1.jar<br>...
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request....
autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value><br/> </parameter><br/> <parameter><br/> <name>username</name><br/> <value>root</value><br/> </parameter><br/> <parameter><br/> <name...
可以直接运行 , 可以editplues 也可以看内容