struts2中iterator标签处理hql返回的不定格式数据

本文介绍了一种使用Struts2框架进行查询并分组的方法,通过编写特定的SQL查询语句实现数据的汇总统计,并展示了如何在JSP页面上展示这些分组数据的不同方式。

查询操作处理端:

String hql= "select w.Sort_Name , sum(w.Gumack)  from WorkList w group by Sort_Name";

public List<Object[]> list(String hql) {
  return  factory.getCurrentSession().createQuery(hql).list();
 }

返回的是ArrayList类型的数据不知道其中的索引属性

Action中的代码:

public String reportSort(){
  ActionContext.getContext().put("sortGroup", workListService.list("select w.Sort_Name , sum(w.Gumack)  from WorkList w group by Sort_Name"));
  return "reportSort";
 }

在jsp中可以有这样几种方式处理:

1.通过status属性迭代

<s:iterator value="#request.sortGroup" status="sort">
      <tr>
       <td ><s:property value="#request.sortGroup[#sort.index][0]"/></td>
       <td ><s:property value="#request.sortGroup[#sort.index][1]"/></td>
      </tr>
 </s:iterator>

其中status 迭代元素的索引,#sort.index是迭代每个sort的索引值,[0]中的数字是每个sort数组的下标

更简单的可以把#request.sortGroup看成一个二维数组,来取值

 

刚在别人那里学到的一种更简洁的方式:

2.通过id属性来迭代

<s:iterator value="#request.sortGroup" id="element">

<tr>
       <td ><s:property value="#element[0]"/></td>
       <td ><s:property value="#element[1]"/></td> 
</tr>

</s:iterator>

其中id为指定集合的迭代元素,因为返回的类型是 ArrayList<String[]>的,所以用#element表示迭代的每个数组,再用下标来取数组中的值

 

3.单字段迭代(特殊)

如果迭代的元素类型只为List类型,如:List<String>,其中只有一个字段值,

也可用更简洁的方式来取值:

<s:iterator value="#request.sortGroup" >

<tr>
             <td ><s:property /></td> 
</tr>

</s:iterator>

其中sortGroup为List<?>类型的(单字段类型)

转载于:https://www.cnblogs.com/qixing/archive/2013/04/26/3045771.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值