因为存入数据库的数据可能不是按照我们想要的方式存进去的。这就导致取出来的时候,不是按照我们想要的方式排序。这时候就要利用struts2的iterator排序功能,按照我们想要的顺序排列。

首先。一个付款类。PayDetail

	@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
/** 序号 */
@Column
private int sNum;
/**付款类别。rent租金。carDeposit车辆押金,peccancyDeposit违章押金*/
@Column
private String type="rent";
/** 付款时间 */
@Temporal(TemporalType.TIMESTAMP)
private Date paymentTime;
/** 帐期付款时间 */
@Temporal(TemporalType.TIMESTAMP)
private Date paymentDaysDate;
/** 业务区间开始日期 */
@Temporal(TemporalType.TIMESTAMP)
private Date between1;
/** 业务区间结束日期 */
@Temporal(TemporalType.TIMESTAMP)
private Date between2;
/** 付款比例 */
@Column
private float paymentScale = 0;
/** 付款金额 */
@Column
private int paymentAmount = 0;
/**实际付款时间*/
@Temporal(TemporalType.TIMESTAMP)
private Date parctitalDate;
/**实际付款金额*/
@Column
private int parctitalMoney=0;
/**欠款金额*/
@Column
private int debt=0;
/**付款单*/
@OneToMany(mappedBy="payDetail",cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private Set<Paying> pays;
@ManyToOne
private DetailPayment dp;

  类之间的关联关系是如下图,其他的类就不贴出来了

通过action查询出Contract.下面是JSP展现页面。相关注解都写在JSP页面上了。

                                <!--所需要的Contract的集合类-->
<s:iterator value="#cs">
<tr>
<th>三</th>
<td colspan="8" style="text-align:left;">合同收入款付款(<s:property value="contractNum"/>)</td>
</tr>
<tr>
<th>序号</th>
<th>合同付款时间表</th>
<th>账期</th>
<th>付款金额</th>
<th>实际付款时间</th>
<th>实际付款金额</th>
<th>余额</th>
<th>滞纳金</th>
<th>付款单号</th>
</tr>
<!--<s:bean>是配置自己所写的排序类。并定义ID让下面的<s:sort>调用 -->
<s:bean name="util.MyComparator" id="myComparator"></s:bean>
<!--按照ID调用上面所定义的排序类。这里的source就是指的数据源,也就是要循环的数据。这里指的是contract.detailPayment.payDetail 这是一个付款集合-->
<s:sort comparator="myComparator" source="detailPayment.payDetail">
<!--这里给iterator起一个ID。进行下面的属性输出。-->
<s:iterator id="pd">
<tr>
<th><input type="checkbox" name="checkbox" id="checkbox" /><s:property value="#pd.sNum"/></th>
<td><s:date name="#pd.paymentTime" format="yyyy年MM月dd日"/></td>
<td><s:property value="#c.detailPayment.paymentDays"/>天</td>
<td><a href="javascript:void(0);" onclick="PopupD();"><s:property value="#pd.paymentAmount"/></a>&nbsp;元</td>
<td>--</td>
<td>--</td>
<td>--</td>
<td>0元</td>
<td>--</td>
</tr>
</s:iterator>
</s:sort>
</s:iterator>

下面是我们自己的排序类myComparator。根据自己想要的排序顺序写出排序类。然后在JSP页面进行调用。

public class MyComparator implements Comparator<PayDetail> {

    public int compare(PayDetail o1, PayDetail o2) {

        return o1.getSNum()-o2.getSNum();
} }

struts2 iterator排序的更多相关文章

  1. Struts2 iterator标签实现嵌套循环

    问题:有一个List<List<Object>>  list用struts2在页面显示使用<s:iterator value=”list” var=”list1″> ...

  2. struts2 iterator 迭代标签只显示前五条记录

    <s:iterator value="#session.produceLists" var="produce" begin="0" e ...

  3. 总结struts2 iterator status的用法

    1:#status.odd 是否奇数行 2:#status.count 当前行数 3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』 ...

  4. struts2官方 中文教程 系列十二:控制标签

    介绍 struts2有一些控制语句的标签,本教程中我们将讨论如何使用 if 和iterator 标签.更多的控制标签可以参见 tags reference. 到此我们新建一个struts2 web 项 ...

  5. Spring MVC之适配器的获取及执行(RequestMappingHandlerAdapter)

    首先看下doDispatch()方法如何找到适合的适配器来执行方法的: protected HandlerAdapter getHandlerAdapter(Object handler) throw ...

  6. 2018-2019-2 《Java程序设计》第8周学习总结

    20175319 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目 ...

  7. 20175324 2018-2019-2 《Java程序设计》第8周学习总结

    本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目的是可以建立具有类型安全的集合框架,如链表.散列映射等数据结构. 泛型类声明:class 名称<泛型列 ...

  8. 20175303 2018-2019-2 《Java程序设计》第8周学习总结

    20175303 2018-2019-2 <Java程序设计>第8周学习总结 教材学习内容总结 本周学习<Java程序设计>第十五章: 泛型: 泛型(Generics)的主要目 ...

  9. 20175224 2018-2019-2 《Java程序设计》第八周学习总结

    教材学习内容总结 第十五章 泛型与集合框架 泛型 泛型:目的为建立具有类型安全的集合框架. 泛型类声明:class People<E> class 名称<泛型列表> 链表 定义 ...

随机推荐

  1. Oracle相关账户几个语句

    Oracle安装完成后,在“开始”里找到SQL Plus运行,要求输入帐号和密码,用system/密码连接. 1.Oracle里有一个默认的scott账户密码tiger,用该账户连接: CONN 用户 ...

  2. 初入Cocos2d-x 2.2

    下载2.2,用迅雷离线下载很快搞定. 解压后,打开cocos2d-win32.vc2012.sln,编译,超慢,20分钟才完事. 然后想创建一个新项目,需要用到python,用python3.3运行脚 ...

  3. acm入门编成题

    http://wenku.baidu.com/view/c8f2f64acf84b9d528ea7aee.html

  4. java线程详解(三)

    java线程间通信 首先看一段代码 class Res { String name; String sex; } class Input implements Runnable { private R ...

  5. jQuery最佳实践(转载)

    本文转载于阮一峰的博文. 上周,我整理了<jQuery设计思想>. 那篇文章是一篇入门教程,从设计思想的角度,讲解“怎么使用jQuery”.今天的文章则是更进一步,讲解“如何用好jQuer ...

  6. (转)MVC中的Repository模式

    1.首先创建一个空的MVC3应用程序,命名为MyRepository.Web,解决方案命名为MyRepository. 2.添加一个类库项目,命名为MyRepository.DAL,添加一个文件夹命名 ...

  7. ubuntu 14.04 键盘快捷键显示

    安装完ubuntu14.04后 第一次登陆,会弹出键盘快捷键的一个大体预览, 也没有一个关闭按钮, 没看完就自动消失了. 让其重现的方法: 按住 super键  ,也就是键盘上的  win键 . 键盘 ...

  8. stringbuffer与stringbuilder与String

    1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们 ...

  9. css伪类运用

    <!doctype html><html><head><meta charset="utf-8"><title>CSS输 ...

  10. Wordnet的一些简单使用

    转载请说明出处:http://www.cnblogs.com/KingKou/p/4121373.html 1.简介 Wordnet是一个由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下 ...