当前位置: 首页 > news >正文

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

 

 

转载于:https://www.cnblogs.com/-10086/p/3441230.html

相关文章:

  • git基本命令
  • Java语言基础(五) Java原始数据类型的分类以及数据范围
  • iconv 文件编码转换
  • Asp.Net下载页面,并弹出下载提示框
  • 判断当前屏幕的方向
  • 手把手教你写LKM rookit! 之 第一个lkm程序及模块隐藏(一)
  • java-java runtime 入门
  • EXCEL中讲 10分10秒转换成610秒
  • 搭建一个Flv视频播放服务器
  • SynchronizationContext
  • 包含CheckBox的TreeView控件——父节点选中时其子节点不可选,子节点有项选中时其父节点不可选...
  • Sublime Text博客插件 --- iblog
  • 瀑布流布局
  • JQuery 去除字符串两边多余的空格
  • ASP.NET MVC 5 学习教程:通过控制器访问模型的数据
  • 网络传输文件的问题
  • 【剑指offer】让抽象问题具体化
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • ReactNative开发常用的三方模块
  • supervisor 永不挂掉的进程 安装以及使用
  • 搞机器学习要哪些技能
  • 机器学习中为什么要做归一化normalization
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 如何优雅地使用 Sublime Text
  • 深度学习在携程攻略社区的应用
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 推荐一个React的管理后台框架
  • nb
  • 阿里云服务器如何修改远程端口?
  • 数据库巡检项
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #1015 : KMP算法
  • #每天一道面试题# 什么是MySQL的回表查询
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2020)Java后端开发----(面试题和笔试题)
  • (52)只出现一次的数字III
  • (C语言)字符分类函数
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八)Spring源码解析:Spring MVC
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (五)Python 垃圾回收机制
  • .Net Memory Profiler的使用举例
  • .Net 知识杂记
  • .net打印*三角形
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET企业级应用架构设计系列之应用服务器
  • []C/C++读取串口接收到的数据程序
  • [20161101]rman备份与数据文件变化7.txt
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [Codeforces] probabilities (R1600) Part.1
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复
  • [EFI]MSI GF63 Thin 9SCXR电脑 Hackintosh 黑苹果efi引导文件