struts2 iterator排序

 

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

}
View Code
相關文章
相關標籤/搜索