`
wenlong342
  • 浏览: 61072 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

个人整理的display的一些特性

阅读更多
display学习笔记

1.遇到写入request中的集合,翻页的时候显示不了?解决:把<display:table>加入requestURI="displayList.do"即可。

2.当无数据记录时,displaytag默认会输出 “Nothing found to display.”,而且没有表头。

修改displaytag.jar中的TableTag.properties文件的三处,就可以定制输出的消息和样式。
1) basic.empty.showtable=false 将属性设置为true,表头即可出现。
2)basic.msg.empty_list=Nothing found to display. 修改信息
3)basic.msg.empty_list_row=<tr class="empty"><td colspan="{0}">Nothing found to display.</td></tr> 既可以修改信息。

3.遇到中文输出的问题,可以自己修改TableTag.properties文件。

4. 导出数据

在display:table中添加export="true",看看会出现什么!Display Tag默认会提供三种数据导出方式:CSV、Excel、XML 。
另外Display Tag还可以导出为PDF格式,在http://prdownloads.sourceforge.net/itext/下载一个辅助包iText.jar,copy到lib目录下,然后在display:table之间添加一段代码:
<display:setProperty name="export.pdf" value="true"/>,大功告成。

5. displaytag中decorator的使用原理

decorator有两种,一种是用在displaytag:table中,一种是用在displaytag:column中,前者对整个表中相应属性有效,后者对单个列有效。所以,在前者中,你一定要在响应的decorator类中写上get方法,命名方式为get+beanProperty(bean属性),前者需继承TableDecorator类,后者只需实现ColumnDecorator类的decorate方法即可(return一个String)。

关于decorator的原理,是这样的,当使用decorator属性时,数据先从bean中被取出,然后被传入进decorator,前者是在decorator类中调用getCurrentRowObject方法得到当前bean,继而再调用bean的get方法将属性取出

public String getDate()
{
return this.dateFormat.format(((ListObject) this.getCurrentRowObject()).getDate());
}
),
后者是数据直接被传进其decorate方法.


当数据被处理完成后,再返回到页面显示,所以说,decorator类其实是将原有属性的value进行包装后输出的包装器,它的英文意思为油漆工,也就是这个意思,这也是一种基本设计模式

6. 分页

如果想对代码分页,只需在display:table标签中添加一项pagesize="每页显示行数",如
<display:table name="test" pagesize="10"/>


7. 对列排序

display tag可对列进行排序,就是点击列名,对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就OK,如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数",可默认对指定的列排序。
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1">
<display:column property="id" title="ID" class="idcol" sort="true"/>
<display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/>
<display:column property="email" autolink="true" sort="true"/>
<display:column property="description" title="Comments"/>
</display:table>
如果table有分页,Display Tag默认只对当前页进行排序,如果想对整个list排序,可以在display:table之间添加一段代码:

8.设置连接

<display:setProperty name="sort.amount" value="list"/>
<display:table name="test" styleClass="list" cellspacing="0" cellpadding="0">
<display:column property="id" title="ID" class="idcol"/>
<display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/>
<display:column property="email" autolink="true"/>
<display:column property="description" title="Comments"/>
</display:table>

9.分组只是需要在column里增加group属性

<display:table name="test" class="simple">

<display:column property="city" title="CITY" group="1"/>

<display:column property="project" title="PROJECT" group="2"/>

<display:column property="amount" title="HOURS"/>

<display:column property="task" title="TASK"/>

</display:table>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics