JSTL 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>

你可能感兴趣的:(display)