在使用displaytag显示数字时,如果对数字进行了HTML包装,那么就有可能造成排序结果的不正确。
displaytag排序的方法是:compare(Object object1, Object object2)
1.如果object1,object2都是String,则按String排序;
2.如果object1,object2实现了Comparable接口,则compareTo方法比较,这样纯数字排序因为能够转换成实现Comparable接口的数字类型所以排序结果正确;
3.其他情况转换成String比较。
因此,组装成HTML的列就默认按String来比较,造成排序结果与预期不符。
例如需要排序displaytag中带超级链接的数字列:
s1: <a href="www.example.com?id=53">53</a>
s2: <a href="www.example.com?id=9">9</a>
则比较结果s1 < s2,显然和我们预期的相反。
解决的方法:
1.自定义一个Comparator类,实现你自己的比较规则,在页面需要的列中配置<display:column title="..." property="..." comparator="你实现的Comparator类名">
2.外排序
3.如果只是需要把数字排正确,更简单的方法是写一个数字的format类,在decorator组装HTML时在数字前补0对齐:
s1: <a href="www.example.com?id=00053">53</a>
s2: <a href="www.example.com?id=00009">9</a>
另外,如果每列需要比较数字前的HTML不是相同的,可以添加隐藏域来解决。例如:
s1: <a href="www.example.com?id=100">53</a>
s2: <a href="www.example.com?id=200">9</a>
修改为:
s1: <input type="hidden" name="sortValue" value="00053"><a href="www.example.com?id=100">53</a>
s2: <input type="hidden" name="sortValue" value="00009"><a href="www.example.com?id=200">9</a>
分享到:
相关推荐
总的来说,解决DisplayTag中文排序问题需要对Java字符串排序机制有深入的理解,并可能涉及修改和替换库的源代码。提供的压缩包资源正是为了解决这个问题而准备的,包含了修改后的源文件、编译结果以及使用指南。通过...
这个压缩包包含了解决DisplayTag在处理中文显示时遇到的问题,以及一个专门用于编辑.properties文件的插件,使得配置更加方便。 Displaytag知识点: 1. **基本功能**:DisplayTag支持分页、排序、导出数据、自定义...
DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...
在1.1版本中,它主要解决了在处理大数据分页时的问题,这使得它成为处理大量数据的理想选择,尤其是在Web应用程序中。这个源码包包含了一系列的文件,帮助我们理解和使用Displaytag的功能。 1. `LICENSE.txt`: 这个...
Displaytag 是一个开源的 JSP 标签库,专门...同时,其丰富的文档和社区支持使得开发者能够快速上手并解决可能出现的问题。在开发 Web 应用程序时,尤其是在处理大量数据展示时,Displaytag 是一个非常值得考虑的工具。
DisplayTag是一个功能强大的Java开源分页和表格展示组件,它为Web开发提供了高效、灵活的解决方案。这个组件在Java社区中被广泛应用,因为其能够帮助开发者轻松实现数据的分页和排序,极大地提高了开发效率。 标题...
DisplayTag 的强大之处在于它提供了一套完整的解决方案,包括对表格数据的排序、过滤、分页以及导出等功能。开发者可以根据需要自定义样式和行为,以满足各种复杂的表格展示需求。例如,可以设置列的排序方式、宽度...
### DisplayTag标签库详解与应用 #### 显示与管理数据的新维度:...DisplayTag通过其简洁而强大的功能,为Web开发中的数据展示提供了全新的解决方案,不仅简化了代码编写,也极大提升了数据展示的效率和用户体验。
DisplayTag是一个开源的Java Web开发库,专门用于创建表格和复杂的数据展示。...通过对源码的阅读,开发者可以深入理解DisplayTag的工作机制,从而更好地利用它进行Web开发,解决实际问题,提高开发效率。
Displaytag和Pager-taglib是两个在Java Web开发中常用的分页库,主要用于处理大量数据的显示,提升用户体验,减轻服务器压力。这两个库都是基于JSP标签库(Tag Library)实现的,可以方便地集成到Spring、Struts等...
10. **社区支持**:作为开源项目,DisplayTag 拥有一个活跃的开发者社区,提供文档、示例和问题解答,帮助用户解决使用过程中遇到的问题。 了解DisplayTag 1.2的源代码,开发者可以深入研究其背后的实现逻辑,优化...
DisplayTag是一个开源的Java库,专门用于创建复杂的表格布局,提供了诸如分页、排序和导出数据等实用功能。在Web开发中,特别是在基于Java的项目中,DisplayTag是一个非常受欢迎的工具,因为它极大地简化了表格展示...
Struts2、DisplayTag和DbUtil是Java Web开发中常用的三个框架或库,它们...Struts2处理请求和流程控制,DisplayTag美化数据展示,而DbUtil则简化了数据库交互,三者协同工作,实现了高效、清晰的Java Web开发解决方案。
DisplayTag是一个开源的...总的来说,DisplayTag是一个强大的工具,对于任何需要在Web应用中展示和操作表格数据的开发者来说,都是一个值得考虑的解决方案。它通过丰富的特性和易用的API,大大简化了表格渲染的复杂性。
DisplayTag库提供了强大的表格渲染功能,不仅可以处理数据的分页,还支持排序、过滤、国际化以及自定义样式等特性。它的核心设计理念是将数据展示逻辑与视图层分离,这符合MVC(Model-View-Controller)架构的原则,...
DisplayTag 是一个强大的开源表格标签库,特别适合于MVC架构的应用程序,它极大地简化了在JSP页面中展示表格数据的过程。...无论是简单的数据展示还是复杂的业务需求,DisplayTag 都能提供优秀的解决方案。
DisplayTag是Java Web开发中的一款开源表格标签库,它提供了丰富的功能,如分页、排序、导出数据等,极大地简化了在JSP页面中处理复杂表格的工作。在这个"displaytag1.1 原码"的压缩包中,包含了DisplayTag 1.1版本...
DisplayTag是一个功能强大的开源JSP分页标签库,它为Java Web开发提供了便捷的分页解决方案。本篇文章将深入探讨DisplayTag的...在实际项目中,根据具体需求灵活运用这些知识点,能够有效解决分页和数据展示的问题。
2. **排序**:除了分页,DisplayTag 还支持表格内的数据排序,用户可以通过点击表头进行升序或降序排序。 3. **国际化**:DisplayTag 具有良好的国际化支持,可以方便地切换不同的语言环境,满足全球用户的使用需求...
DisplayTag是一个开源的Java Web开发库,用于生成复杂的表格,提供了很多高级功能,如排序、分页、国际化、导出等。它简化了在Web应用中处理表格展示的工作,极大地提高了开发效率。以下是对DisplayTag标签、源码、...