`
xumos
  • 浏览: 9502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用displaytag对String类型数字排序不准确的解决方法

JSP 
阅读更多
问题:model中定义的数值都为String类型,用displaytag进行排序时,默认是按字符串比较的,造成排序不准确。

解决办法:
1、自定义一个Comparator类,实现自定义比较规则
2、在页面需要的列中配置
<display:column title="" comparator="自定义的Comparator类名">


package workshop.noptimPlat.common;

import java.util.Comparator;

import org.displaytag.model.Cell;

/**
 * 当用displaytag对String类型的数值进行排序时,默认是按字符串形式排序的,造成不准确。
 * 此类自定义一个Comparator类,实现自己的比较规则
 * */
public class StrTransIntComparator implements Comparator {

	@Override
	public int compare(Object obj1, Object obj2) {
		String o1=null;
		String o2=null;
		
		if(obj1 instanceof Cell){
			o1=((String)((Cell)obj1).getStaticValue()).trim();
		}
		if(obj2 instanceof Cell){
			o2=((String)((Cell)obj2).getStaticValue()).trim();
		}
		double val1=Double.valueOf(o1);
		double val2=Double.valueOf(o2);
		if (val1 < val2){
			return 1;
		}
		if (val1 > val2){
			return -1;
		}
		return 0;
	}

}


JSP页面:
<display:column title="" sortable="true" comparator="workshop.noptimPlat.common.StrTransIntComparator">
            <c:out value="${item}" escapeXml="false"/>
</display:column>
分享到:
评论
1 楼 xuyan7843 2013-07-16  
我刚好遇到这种问题,想对数据进行排序,因为是字符串类型,排序结果就变成1,12,13,138,21,31....等等,使用了你的方法后,出现了些小问题,需要排序那列显示的是comparator中引用的那个类的字符串。

相关推荐

    displaytag中文排序问题解决办法

    然而,在处理中文排序时,DisplayTag可能会遇到问题,因为默认的排序算法可能不支持汉字的正确排序。这个问题通常涉及到字符编码和Unicode排序规则。 解决DisplayTag中文排序问题的关键在于理解Java的字符串比较...

    displaytag的使用方法

    Displaytag 是一个开源的 JSP 标签库,专门用于创建数据表格,提供了一组易于使用的标签,可以实现复杂的表格功能,如分页、排序、导出等。在本文中,我们将详细讨论 Displaytag 1.1 版本的使用方法。 **一、...

    displaytag及使用方法

    以下是一些常见的DisplayTag使用方法: 1. **显示表格**: 使用`&lt;display:table&gt;`标签来创建表格,通过`name`属性指定数据源(通常是一个List或者一个JavaBean集合),例如: ```jsp ``` `export`属性设置为...

    displaytag详细用法(中文问题已解决)

    1. **基本功能**:DisplayTag支持分页、排序、导出数据、自定义样式等多种功能,极大地简化了网页表格的开发工作。通过简单的标签和属性设置,开发者可以轻松创建复杂表格。 2. **标签库**:DisplayTag基于JSTL标签...

    DisplayTag1.2 扩展(自定义分页、排序、导出、页面导航)

    DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...

    displaytag-1.1 源码

    在1.1版本中,它主要解决了在处理大数据分页时的问题,这使得它成为处理大量数据的理想选择,尤其是在Web应用程序中。这个源码包包含了一系列的文件,帮助我们理解和使用Displaytag的功能。 1. `LICENSE.txt`: 这个...

    用JavaScript操作displayTag表头操作

    DisplayTag是一个功能丰富的开源Java Web组件库,它提供了一种强大的方式来展示表格数据,包括排序、分页和格式化。 在描述中虽然没有具体的信息,但我们可以通过`displayTagJavaScript.html`这个文件名推测,这篇...

    displaytag-1.1.1标签库及其使用方法.rar

    这一步骤确保了DisplayTag可以正确解析和处理页面中的标签。 DisplayTag 的主要标签包括 `&lt;display:table&gt;`,它是整个表格的核心。通过这个标签,你可以指定数据源(如:一个Java集合),以及设置表格的属性,如列...

    分页用displaytag-portlet-1.1jar包

    DisplayTag库提供了强大的表格渲染功能,不仅可以处理数据的分页,还支持排序、过滤、国际化以及自定义样式等特性。它的核心设计理念是将数据展示逻辑与视图层分离,这符合MVC(Model-View-Controller)架构的原则,...

    displaytag标签的使用

    DisplayTag 的强大之处在于它提供了一套完整的解决方案,包括对表格数据的排序、过滤、分页以及导出等功能。开发者可以根据需要自定义样式和行为,以满足各种复杂的表格展示需求。例如,可以设置列的排序方式、宽度...

    displayTag1.2

    5. **数据格式化**:能够根据需要对表格中的数据显示进行格式化,例如日期、货币等类型的数据显示。 6. **导出功能**:DisplayTag支持将表格数据导出为CSV、Excel、PDF等多种格式,方便数据处理和分析。 7. **扩展...

    displaytag简明使用示例

    DisplayTag 是一款强大的开源表格展示标签库,专为MVC架构设计,适用于Java Web应用程序。它提供了丰富的功能,包括排序、分页、国际化等,极大地简化了网页表格的开发。下面我们将详细探讨DisplayTag的使用方法。 ...

    DisplayTag的学习方法

    DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法

    displaytag-1.2-bin&displaytag-1.2-src Java分页组件/插件

    DisplayTag是一个功能强大的Java开源分页和表格展示组件,它为Web开发提供了高效、灵活的解决方案。这个组件在Java社区中被广泛应用,因为其能够帮助开发者轻松实现数据的分页和排序,极大地提高了开发效率。 标题...

    自己整理的DisplayTag标签的使用

    ### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:...DisplayTag通过其简洁而强大的功能,为Web开发中的数据展示提供了全新的解决方案,不仅简化了代码编写,也极大提升了数据展示的效率和用户体验。

    displaytag的使用指南(全)

    ### DisplayTag 使用指南详解 #### 一、简介 DisplayTag 是一个开源的 Java Web 标签库,主要用于处理数据表格的展示与交互。它能够帮助开发者轻松地将 JavaBean 集合转换成 HTML 表格,并且支持排序、分页等功能...

    displaytag标签使用

    - **排序**:DisplayTag 支持列点击进行数据排序,只需在`&lt;display:column&gt;`标签中添加`sortable="true"`属性。 - **分页**:默认开启,通过`export`属性控制是否导出数据,`pagesize`属性设置每页显示的行数。 -...

    displayTag的使用方法

    ### DisplayTag插件的使用方法详解 #### 一、引言 在Web开发过程中,特别是使用Java技术栈进行开发时,经常会遇到需要展示大量数据的情况,例如用户列表、订单列表等。为了更方便地实现这样的功能,开发者通常会...

    displaytag-1.1.rar_displaytag

    DisplayTag是一个开源的Java Web开发库,专门用于创建表格和复杂的数据展示。...通过对源码的阅读,开发者可以深入理解DisplayTag的工作机制,从而更好地利用它进行Web开发,解决实际问题,提高开发效率。

Global site tag (gtag.js) - Google Analytics