日期:2014-05-16  浏览次数:20391 次

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

    在web.xml下添加一个filter   

<filter>       

<filter-name>exportFilter</filter-name>       

<filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>   

</filter>

    在jsp页面做一个引用: <%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %>    首先我们定义一个list <% List test = new ArrayList( 6 ); test.add( "Test String 1" ); test.add( "Test String 2" ); test.add( "Test String 3" ); test.add( "Test String 4" ); test.add( "Test String 5" ); test.add( "Test String 6" ); request.setAttribute( "test", test ); %>

    当我们想在jsp页面上显示这个list时,我们只需要写一句话     <display:table />     display tag会自动生成一个table

    如果list是从控制层抛出来的,name可使用EL表达式表示     <display:table />

    这是最简单的display tag的使用,我们可以给它加上样式等,也可以定义显示的列,下面的table显示复杂一些

<display:table styleClass="list" cellspacing="0" cellpadding="0">

<display:column property="id" title="ID" />

<display:column property="name" />

<display:column property="email" />

<display:column property="description" title="Comments"/>

</display:table>

    如果想要给它加个链接也很简单,下面的代码给name加了连接,并附带id参数,email也自动连接到mailto:XXX

<display:table styleClass="list" cellspacing="0" cellpadding="0">

<display:column property="id" title="ID" />

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

下面介绍几个Display最常用的功能,更多功能请参考http://www.displaytag.org/index.jsp。 1. 分页     如果想对代码分页,只需在display:table标签中添加一项pagesize="每页显示行数",如 <display:table pagesize="10"/>

2. 对列排序     display tag可对列进行排序,就是点击列名,对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就OK,如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数",可默认对指定的列排序。

<display:table styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1">

<display:column property="id" title="ID" 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之间添加一段代码: <display:setProperty value="list"/>

3. 导出数据     在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 value="true"/>,大功告成。

4. Display Tag的属性设置     前面所说的display:setProperty 是一种改变Display Tag属性的方法,但是在每个jsp中都要写太麻烦了。     Display Tag中设置了很多默认的属性,它有一个专门的属性文件,是在它的jar包中的displaytag/properties /TableTag.properties     想要改变它的默认属性,我们可以在WEB-INF\classes下新建一个文件displaytag.properties,仿照 TableTag.properties中属性的格式设置需要修改的属性。     TableTag.pr