首页 jsptable标签_烟雨荼楼

jsptable标签_烟雨荼楼

举报
开通vip

jsptable标签_烟雨荼楼JSPDisplay标签的使用TE收藏TEDisplayTagLib是一个标签库用来处理jsp网页上的Table功能非常强可以对的Table进行分页、数据导出、分组、对列排序等等反正我在做项目时需要的功能它都给我提供了而且使用起来非常的方便。能够大大减少代码量。介个是DisplayTag的官方网站http://displaytag.sourceforge.net。首先当然是要下载它的jar包了这里可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包apache的commons-l...

jsptable标签_烟雨荼楼
JSPDisplay标签的使用TE收藏TEDisplayTagLib是一个标签库用来处理jsp网页上的Table功能非常强可以对的Table进行分页、数据导出、分组、对列排序等等反正我在做项目时需要的功能它都给我提供了而且使用起来非常的方便。能够大大减少代码量。介个是DisplayTag的官方网站http://displaytag.sourceforge.net。首先当然是要下载它的jar包了这里可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包apache的commons-lang和standard包更多的辅助包可以在这里下载。在web.xml下添加一个filterexportFilterorg.displaytag.filter.ResponseOverrideFilter在jsp页面做一个引用首先我们定义一个list当我们想在jsp页面上显示这个list时我们只需要写一句话displaytag会自动生成一个table如果list是从控制层抛出来的name可使用EL表达式表示这是最简单的displaytag的使用我们可以给它加上样式等也可以定义显示的列下面的table显示复杂一些如果想要给它加个链接也很简单下面的代码给name加了连接并附带id参数email也自动连接到mailto:XXX下面介绍几个Display最常用的功能更多功能请参考http://www.displaytag.org/index.jsp。1.分页如果想对代码分页只需在display:table标签中添加一项pagesize每页显示行数如2.对列排序displaytag可对列进行排序就是点击列名对该列的数据进行排序。你只需对想要排序的列添加sorttrue就OK如下面的代码可对前三列进行排序。在display:table中添加defaultsort列数可默认对指定的列排序。如果table有分页DisplayTag默认只对当前页进行排序如果想对整个list排序可以在display:table之间添加一段代码3.导出数据在display:table中添加exporttrue看看会出现什么DisplayTag默认会提供三种数据导出方式CSV、Excel、XML。另外DisplayTag还可以导出为PDF格式在http://prdownloads.sourceforge.net/itext/下载一个辅助包iText.jarcopy到lib目录下然后在display:table之间添加一段代码大功告成。4.DisplayTag的属性设置前面所说的display:setProperty是一种改变DisplayTag属性的方法但是在每个jsp中都要写太麻烦了。DisplayTag中设置了很多默认的属性它有一个专门的属性文件是在它的jar包中的displaytag/properties/TableTag.properties想要改变它的默认属性我们可以在WEB-INFclasses下新建一个文件displaytag.properties仿照TableTag.properties中属性的格式设置需要修改的属性。TableTag.properties中的messages中设置的是显示在页面上的提示信息。默认是英文的我们可以把它改为中文的。不过这里只能使用unicode就是说中文字符必须转换为unicode码这个可以使用jdk自带的native2ascii.exe进行转换。6.displaytag的翻页机制这可能是displaytag的局限性了它的翻页机制是这样的如果一个list中有10000个bean按照它的机制如果是第一页每页n条它会把前n条数据取出来然后再把剩余的10000n条删除当你点击页面“2的”时候它再从后台绕一圈把第二页的数据也就是把第n1-2n条记录取出来把剩余的删除。这样它实现了翻页又防止了内存占用过大。但是不管怎么说它还是有一个取出所有条数的动作的在极大数据量的情况下有可能造成内存溢出。8.displaytag中decorator一例importorg.displaytag.decorator.TableDecoratorimportjava.util.HashMapimportjava.text.SimpleDateFormatimportjava.util.DatepublicclassBulletinListDecoratorextendsTableDecoratorprivateStringbulletinIdnullprivateStringtitlenullprivateSimpleDateFormatsdfnullprivateinti0publicBulletinListDecoratorsdfnewSimpleDateFormatyy-MM-ddpublicStringgetBulletinIdi1returnipublicStringgetTitlebulletinIdStringHashMapthis.getCurrentRowObject.getbulletinIdtitleStringHashMapthis.getCurrentRowObject.gettitlereturntitlepublicStringgetLastPubDreturnsdf.formatDateHashMapthis.getCurrentRowObject.getlastPubD其中bulletinList是一个ArrayListtitleKey指向了properties文件补充一在display:table中添加自定义的列用display:column将其属性media的值设置为html即可如下例子二在写对应于bean里面的列时display:column中property对应的值是bean里面的属性的名字大小写必须一致例如有个actionform类有属性privateString_Name则property的值也必须为_Name否则提示找不到列。转displaytag学习笔记总结16列表的子集offset为第一个数据在mylist中的序号。length为显示的记录条数。7自动设置链接能够把此列的内容作为链接连接的url和内容一致。当然必须格式有效的url否则写了也没有连接。自认为这个功能一般。因为连接的内容和显示的内容通常不一样。当然可以在在这里给某列指定所有的链接为同一个连接。或者sdfs两者效果是一样的。那么如果连接的url不是列内容而且每行的链接都不相同这个时候怎么办就好像广告列表有商户名称商户名称是一个连接连接到商户的具体信息页面。连接的url肯定不同。如何处理现在还不知道接着往下看。8使用装饰类来转换数据。用来转换数据内容的。一般用来格式化信息。此类必继承TableDecorator。顺便介绍一个格式化时间的包org.apache.commons.lang.time.FastDateFormat格式化金钱的包java.text.DecimalFormat思路就是覆盖List中具体类型的getXXX方法。this.getCurrentRowObject得到当前行的数据。this.getListIndex得到当前行的序号。之后就转化为List中存放的具体类型之后得到某列的数据。返回格式化后的数据。另外我看到装饰类增加了一些getXXX方法这些方法并没有在ListObject中定义。还不知道这样做有什么好处这样仅仅对一列数据进行格式化需要继承ColumnDecorator需要实现StringdecorateObjectcolumnValue方法。此方法同样接受一个Object参数此参数就是对象的某个具体属性值直接转化为对应类型然后格式化返回String。9建立动态链接。两种方式可以建立动态链接。第一种方式直接在页面上使用http://baseurl/paramidcolumnvaluehttp://baseurl/paramidscope范围内的名字为name的值http://baseurl/paramid名字为propertyname的属性值这种方式处理简单的链接十分有效但是链接参数值如果通过查询数据库等比较复杂的方式得到的话这种方式就不适应了。这时候就必须使用第二种方法。第二种方法在装饰类中获得连接。装饰类多定义一些getXXX方法那么页面上就可以使用来使用装饰类degetXXX方法。好这样一来在装饰类的getXXX方法里得到此行对象这样对象的各个属性就都能得到之后去查数据库也好去完成负责的判断逻辑也好都很容易实现别忘了然后拼装起来并写成一个这样的字符串返回。好页面直接一句话就可得到此拼装的《a》了。第二种方法比较好些因为可以显得更灵活。想怎么写就怎么写。第一种方法就是简单地实现。10翻页。1怎么得到每行的序号使用肯定好用。但是这种方式就不好用。也不知道差哪了。翻页很简单。就是在这样来指定每页的数量就可以了。自动出现换页的索引上下页等等东西。实在是方便。但是问题就是一次传下来很多东西性能不好。等一会看看如何改良。11自动设置排序可以设定默认时按照哪列排序是升序还是降序。本例设置第一列默认时降序。每列都得对象都必须实现了Comparable接口才能被设置成sortabletrue.如果没有实现Comparable那么必须写一个装饰类。另外需要注意他只对当前页面进行排序。而不是全部。在翻页时特别需要注意。要想实现全部的排序那么必须重新写Action往网页传新的List了。12如何分组按照某列进行分组显示。这个功能真不错。这样不仅仅结果可以分组而且还可以省略掉重复的数据例如city列project列都有ABAB两行那么第二行这两列就不显示了。同样只能对当前页进行分组。注意第一列一定要1第二列一定是2否则出NUllPoint错误。13统计好东西啊。可以对分组进行统计也可以对所有行进行统计。主要靠TableDecorator类finishRow返回统计结果放到页面去显示。TableDecorator类方法getDecoratedObject得到整个结果集。一般把它转化成List因为大多数情况下结果是存放在List中的。publicfinalStringfinishRow当一行结束时执行此方法。所以用它来判断是否需要计算城市统计抑或是全部统计。相当于事件处理。返回的字符串也将在页面上显示。本例返回了...这样的三份。这样就在表中嵌套进了三行。用来显示统计是足够了。14导出数据很简单。talbe里设置export“true就”行了。配置文件也要设置好export.xmltrue这样才能导出xml。类推pdf、excel、html、csv。每个列能配置是否在某种格式中显示语法
本文档为【jsptable标签_烟雨荼楼】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥13.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_601737
暂无简介~
格式:doc
大小:99KB
软件:Word
页数:0
分类:
上传时间:2021-09-19
浏览量:21