很早以前就发现displaytag标签了,不过一直也没有去怎么接触,周末闲来无事,就从网上找了一些资料来整整,闲话少说,进入正题。
首先介绍下Displaytag吧,Displaytag是个标签库,用来对网页上的table进行处理,这其中的功能相当大的强大。包括对数据的分页显示......
那么Displaytag的使用需要哪些包呢?这其中用到了如下库文件Displaytag.jar , commons-lang , standard和commons-collections包。这些包可以在sourceforge和apache的网站上下载
下载下来如何使用Displaytag呢?
好吧。首先你得将上面下载的库导入到你的工程当中去,在我们工程文件的web.xml文件中添加
<filter> <filter-name>exportFilter</filter-name> <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class> </filter>
在我们的页面当中引入该标签库
<%@ taglib uri="http://displaytag.sf.net/el" prefix="display"%>
好吧,下面直接进入正题,我们可以来一个简单的示例,让大家有一个直观的感受,请看如下代码:
<%
List test = new ArrayList(6);
for(int i = 0 ; i < 6 ; i++){
HashMap<String,String> map1 = new HashMap<String,String>();
String m = String.valueOf(i);
map1.put("id",m);
map1.put("name","foolfish"+m+" ");
map1.put("email","foolfish.chen@gmail.com ");
map1.put("description","Hello Hello ");
test.add(map1);
}
request.setAttribute("test", test);
%>
<div align="center">
<display:table name="test" cellspacing="0"
cellpadding="0" pagesize="2" export="true">
<display:column property="id" title="ID" sortable="true"/>
<display:column property="name" title="Name" />
<display:column property="email" title="Email"/>
<display:column property="description" title="Comments" />
</display:table>
前面<%%>中嵌入的代码是一个和map组成的list。类似一个而为数组的格式。我们所要做的就是将这个list按照表格的方式进行输出显示。
那么怎样才能够输出呢?请看下面的代码
<display:table name="test" cellspacing="0" cellpadding="0" pagesize="2" export="true">
该标签的作用是输出一个表格。name属性为接受的数据,此标签输出的就是test对象的数据。
pagesize为该标签的分页功能,指定pagesize的大小就指定了一个页面显示的数据行数,并提供分页导航功能
export="true"为提示该页面是否提供导出功能,目前提供csv,xls,pdf等输出形式。
<display:column property="id" title="ID" sortable="true"/>
display:column落实到显示具体的每列数据。以此段代码为例,该列输出该条记录属性为id的数据。并显示列明为ID
sortable="true"提供的功能是该列是否提供排序功能。
该段代码运行的一个效果如下图所示:
其实DisplayTag提供的功能远远不止这些,displayyag的功能相当强大,不过DisplayTag也有一定得局限性,对中文支持不是很好,不过没有解决不了的问题,对于中文支持问题可以通过修改服务器的编码设置问题进行修改。这里不做详细赘述。