zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    <>跟!=
    exists查询中子表可以是
    in 与 = 的区别
    F查询和Q查询
    Django ORM常用字段和参数
    Django模板系统
    Djang视图层
    Django路由层
    ASP.NET前端语法应用
    WebConfig加密解密
  • 原文地址:https://www.cnblogs.com/-10086/p/3441230.html
Copyright © 2011-2022 走看看