由於存入數據庫的數據可能不是按照咱們想要的方式存進去的。這就致使取出來的時候,不是按照咱們想要的方式排序。這時候就要利用struts2的iterator排序功能,按照咱們想要的順序排列。javascript
首先。一個付款類。PayDetailjava
@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頁面上了。app
<!--所須要的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> 元</td> <td>--</td> <td>--</td> <td>--</td> <td>0元</td> <td>--</td> </tr> </s:iterator> </s:sort> </s:iterator>
下面是咱們本身的排序類myComparator。根據本身想要的排序順序寫出排序類。而後在JSP頁面進行調用。ide
public class MyComparator implements Comparator<PayDetail> { public int compare(PayDetail o1, PayDetail o2) { return o1.getSNum()-o2.getSNum(); } }