struts2 iterator排序


 

因為存入數據庫的數據可能不是按照我們想要的方式存進去的。這就導致取出來的時候,不是按照我們想要的方式排序。這時候就要利用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();
    }

}
View Code

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM