在使用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中文排序问题.压缩包中包含1.0与1.1版本修改的源文件、编译后的文件,及修改后的jar包。
DisplayTag是个很好的jsp标签,目前最新版本为1.2,支持了自定义分页,解决了之前版本每次查询都把全部数据查出的低效率做法。但是DisplayTag默认是通过url传参,以及分页导航不灵活给人们带来了不少麻烦。鉴于此...
displaytag的使用方法(用于数据表格的显示和功能控制)Displaytag1.1版本使用方法
displaytag详细用法(中文问题已解决,附带自己修改的properties文件)还附带了properties专用文件编辑器插件
displaytag所有包(资源) 及使用方法
DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法DisplayTag的学习方法
displaytag 表格 标签 displaytag-1.1.1标签库及其使用方法
displaytag1.1显示排序分页导出自动标签
用于解决,displaytag的中文显示问题
displaytag标签使用详解 应用实例
DisplayTag是一个开源的自定义标签库(Custom Tag lib),他提供了直接而有效的格式化web视图层数据的有效手段。你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令...
DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明DisplayTag标签使用说明
改装后的displayTag分页插件,解决中文问题,内置帮助文档和示例文件及jar包,比较好用,如果不满足你的需求请不要砸砖 补充: csdn附件不能修改,jsp+servlet分页时有bug,请注意查询所有的serlvet不支持带参数,即...
displaytag资料,解决中文乱码。
displaytag-1.1.1-execle@cvs导出中文乱码问题解决.jar
关于displaytag标签的使用 使用方便 做网页的时候用的着
示例如何使用displaytag,详细介绍displaytag在使用方式上的不同,具有举一反三的效果
DisplayTag分页及属性