`

web使用displaytag显示表格(提供排序,链接,下载等等)

阅读更多

 

DisplayTag是一个开源的自定义标签库(Custom Tag lib),他提供了直接而有效的格式化web视图层数据的有效手段。你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,视图层的大部分工作不就是使用表格来格式化数据嘛!

 

 

项目结构图,如图一:

第一步,新建com.action.ProductsAction.java这个类, 用来得到一个List<Product>list对象,实际开发中,这个list将是从数据库中获得


 


 ProductsAction.java

 

package com.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.bean.Product;
import com.opensymphony.xwork2.ActionSupport;

public class ProductsAction extends ActionSupport
{
    private List<Product>list;

    public List<Product> getList()
    {
        return list;
    }
    public void setList(List<Product> list)
    {
        this.list = list;
    }
    public String execute()
    {
        list=new ArrayList<Product>();
        for (int i = 0; i < 80; i++)
        {
            Product product=new Product();
            product.setEmail("http://email"+"--"+i);
            product.setMoney(10000.00+i);
            product.setName("商品"+"--"+i);
            product.setNum("isbn"+"--"+i);
            product.setTime(new Date());
            product.setUrl("www.google.com");
            list.add(product);
        }
        System.out.println("数据共有"+list.size()+"条");
        return SUCCESS;
    }
}
 

 

 

第二步,新建Productjavabean

package com.bean;

import java.util.Date;

public class Product
{
    private String num;
    private String name;
    private String email;
    private double money;
    private String url;
    private Date time;

//getter,setter略

}
 

 

 

第三步,新建properties资源文件,并配置struts.xml

 

displaytag_zh_CN.properties:
basic.empty.showtable=false
basic.show.header=true

# page | list
sort.amount=list

# \u5bfc\u51fa\u8303\u56f4\u8bbe\u7f6e\uff0clist\u4e3a\u5168\u90e8\uff0cpage\u4e3a\u9875\u9762
export.amount=list
export.decorated=true

paging.banner.group_size=8
# \u4fee\u6539\u5206\u9875\u5bfc\u822a\u6761\u663e\u793a\u7684\u4f4d\u7f6e\uff0ctop\u4e3a\u9876\u90e8\uff0cbottom\u4e3a\u5e95\u90e8\uff0cboth\u4e3a\u9876\u90e8\u548c\u5e95\u90e8
paging.banner.placement=bottom


css.tr.even=even
css.tr.odd=odd
css.th.sorted=sorted
css.th.ascending=order1
css.th.descending=order2
css.table=
css.th.sortable=sortable

# factory classes for extensions
factory.requestHelper=org.displaytag.util.DefaultRequestHelperFactory

# factory class for decorators
factory.decorator=org.displaytag.decorator.DefaultDecoratorFactory

# locale provider (Jstl provider by default)
locale.provider=org.displaytag.localization.I18nJstlAdapter

# locale.resolver (nothing by default, simply use locale from request)
#locale.resolver=

export.types=csv excel xml pdf

export.csv.class=org.displaytag.export.CsvView
export.excel.class=org.displaytag.export.ExcelView
export.xml.class=org.displaytag.export.XmlView
export.pdf.class=org.displaytag.export.PdfView

export.csv=true
export.csv.label=<span class="export csv">CSV </span>
export.csv.include_header=false
export.csv.filename=instence.csv

export.excel=true
export.excel.label=<span class="export excel">Excel </span>
export.excel.include_header=true
export.excel.filename=instence.xls

export.xml=true
export.xml.label=<span class="export xml">XML </span>
export.xml.filename=instence.xml

export.pdf=true
export.pdf.label=<span class="export pdf">PDF </span>
export.pdf.include_header=true
export.pdf.filename=instence.pdf

export.rtf=true
export.rtf.label=<span class="export rtf">RTF </span>
export.rtf.include_header=true
export.rtf.filename=instence.rtf

# \u5206\u9875\u5bfc\u822a\u6761\u8bbe\u7f6e

basic.msg.empty_list=\u6CA1\u6709\u8BB0\u5F55\u53EF\u663E\u793A
basic.msg.empty_list_row=<tr class\="empty"><td colspan\="{0}">\u6CA1\u6709\u8BB0\u5F55\u53EF\u663E\u793A</td></tr>
error.msg.invalid_page=invalid page

# \u5bfc\u51fa\u5bfc\u822a\u6761\u8bbe\u7f6e
export.banner=<div class\="exportlinks">\u5BFC\u51FA\u81F3\: {0}</div>
# \u5206\u5272\u7b26
export.banner.sepchar= ||

paging.banner.item_name=\u6761\u8BB0\u5F55
paging.banner.items_name=\u6761\u8BB0\u5F55

paging.banner.no_items_found=<span class\="pagebanner">\u6CA1\u6709\u8BB0\u5F55\u88AB\u627E\u5230.</span>
paging.banner.one_item_found=<span class\="pagebanner">\u53EA\u6709\u4E00\u6761\u8BB0\u5F55\u88AB\u627E\u5230.</span>
paging.banner.all_items_found=<span class\="pagebanner">{0} {1} \u88AB\u627E\u5230, \u672C\u9875\u663E\u793A\u5168\u90E8\u8BB0\u5F55.</span>
paging.banner.some_items_found=<span class\="pagebanner">{0} {1} \u88AB\u627E\u5230, \u672C\u9875\u663E\u793A\u7B2C {2} \u5230\u7B2C {3} \u6761\u8BB0\u5F55.</span>

paging.banner.full=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u4E00\u9875</a>] {0} [<a href\="{3}">\u4E0B\u4E00\u9875</a>/<a href\="{4}">\u5C3E\u9875</a>]</span>
paging.banner.first=<span class\="pagelinks">[\u9996\u9875/\u4E0A\u4E00\u9875] {0} [<a href\="{3}">\u4E0B\u4E00\u9875</a>/<a href\="{4}">\u5C3E\u9875</a>]</span>
paging.banner.last=<span class\="pagelinks">[<a href\="{1}">\u9996\u9875</a>/<a href\="{2}">\u4E0A\u4E00\u9875</a>] {0} [\u4E0B\u4E00\u9875/\u5C3E\u9875]</span>
paging.banner.onepage=<span class="pagelinks">{0}</span>

paging.banner.page.selected=<strong>{0}</strong>
paging.banner.page.link=<a href\="{1}" title\="\u5230\u7B2C{0}\u9875">{0}</a>
paging.banner.page.separator=,

# external sort and pagination
pagination.sort.param=sort
pagination.sortdirection.param=dir
pagination.pagenumber.param=page
pagination.searchid.param=searchid
pagination.sort.asc.value=asc
pagination.sort.desc.value=desc
pagination.sort.skippagenumber=true

# unused
save.excel.banner=<a href="{0}" rel="external">save ({1} bytes)</a>
save.excel.filename=export.xls
 

 

 

struts.xml:

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name ="StudentInfo" extends ="struts-default">

     <action name="productInfo" class="com.action.ProductsAction">
            <result name="success">/productInfo.jsp</result>
       </action>
</package >
</struts>
 

 

 

 

 

第四步,新建index.jspproductInfo.jsp

Index.jsp:

  <body>
    <a href="productInfo.action">查询所有商品信息</a>
  </body>
 

productInfo.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="display" uri="http://displaytag.sf.net/el" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">   
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
  </head>

  <body>
    <display:table pagesize="9" export="true" requestURI="productInfo.action" name="list">
            <display:column property="num" title="商品编号" group="1" sortable="true"/>
            <display:column property="name" title="商品名称" group="2" sortable="true"/>
            <display:column property="email" title="反馈地址" autolink="true"/>
            <display:column property="money" title="商品价格" group="3" sortable="true"/>
            <display:column property="url" title="官方网站" autolink="true"/>
            <display:column property="time" title="出场时间" format="{0,time,yyyy-mm-dd}"/>
            <display:column/>
    </display:table>
  </body>
</html>
 

 

 

 

 

第五步,配置web.xml并部署运行项目

 

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 <filter>
  <filter-name>s2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <!-- 配置displaytag的过滤器 -->
 <filter>
  <filter-name>exportFilter</filter-name>
  <filter-class>org.displaytag.filter.ResponseOverrideFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>s2</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>
 

 

 

部署项目到tomcat下,在浏览器键入:

http://localhost:8080/displaytag

  • 大小: 16.4 KB
分享到:
评论

相关推荐

    displaytag中文排序问题解决办法

    DisplayTag是一个开源的Java库,用于在Web应用中创建复杂的表格。它提供了许多高级功能,如分页、排序、导出等。然而,在处理中文排序时,DisplayTag可能会遇到问题,因为默认的排序算法可能不支持汉字的正确排序。...

    displaytag及使用方法

    DisplayTag是一个开源的Java库,专门用于在Web应用程序中创建复杂的表格。它提供了一系列的标签和功能,使得在JSP页面上展示数据变得更加容易和灵活。DisplayTag支持分页、排序、导出、国际化和自定义样式,是开发...

    displaytag标签的使用

    DisplayTag 的强大之处在于它提供了一套完整的解决方案,包括对表格数据的排序、过滤、分页以及导出等功能。开发者可以根据需要自定义样式和行为,以满足各种复杂的表格展示需求。例如,可以设置列的排序方式、宽度...

    Struts2中使用displaytag标签总结

    DisplayTag则是一个开放源码的Java库,用于在Web应用程序中生成表格,它提供了丰富的功能,如分页、排序、国际化等,极大地简化了表格展示的复杂性。这篇博客文章《Struts2中使用displaytag标签总结》很可能是讨论...

    displaytag分页jar包和使用说明

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格和分页控件库,它极大地简化了在JSP页面中处理复杂表格和实现分页的工作。这个压缩包文件包含的就是DisplayTag的相关jar包以及可能的使用说明文档,对于开发...

    自己整理的DisplayTag标签的使用

    为了在项目中使用DisplayTag,首先需要下载并引用其提供的`DisplayTag.jar`文件,以及依赖的Apache项目相关jar包。此外,还需要在`web.xml`中进行相应的标签库配置,具体如下: ```xml &lt;taglib-uri&gt;...

    使用那个displaytag元件所需用的jar包

    它提供了许多高级特性,如分页、排序、国际化支持、导出功能等,极大地简化了开发人员在Web应用中处理复杂表格的需求。在使用DisplayTag时,需要依赖一些特定的JAR(Java Archive)文件来运行和构建项目。 本压缩包...

    displaytag的使用方法

    Displaytag 是一个开源的 JSP 标签库,专门用于创建数据表格,提供了一组易于使用的标签,可以实现复杂的表格功能,如分页、排序、导出等。在本文中,我们将详细讨论 Displaytag 1.1 版本的使用方法。 **一、...

    displaytag-1.1.1标签库及其使用方法.rar

    DisplayTag 是一个开源的Java Web开发中的表格标签库,它为网页开发者提供了强大的表格展示功能。DisplayTag 1.1.1是该库的一个版本,它包含了一系列预定义的JSP标签,使得创建复杂的、可分页、可排序、可导出的表格...

    displaytag,pager-taglib 分页包

    Displaytag是一个开源的表格和分页显示标签库,它提供了许多高级特性,如排序、分页、导出、样式控制等。使用Displaytag,开发者可以快速地在网页上创建出功能丰富的表格,而无需编写大量的HTML和Java代码。以下是...

    displaytag的使用指南(全)

    DisplayTag 是一个开源的 Java Web 标签库,主要用于处理数据表格的展示与交互。它能够帮助开发者轻松地将 JavaBean 集合转换成 HTML 表格,并且支持排序、分页等功能。本文将详细介绍 DisplayTag 的安装步骤、基本...

    displaytag-1.1.jar和display-export-poi-1.1.jar下载

    在使用display-export-poi-1.1.jar进行数据导出时,DisplayTag会利用Apache POI库将表格数据转换成Excel格式,并提供下载链接给用户。这个过程通常涉及设置导出的样式、格式和过滤条件,以便生成符合预期的Excel文件...

    displayTag1.2

    DisplayTag是Java Web开发中的一款强大且功能丰富的表格标签库,它为开发人员提供了一种高效、易用的方式来展示表格数据。DisplayTag 1.2是这个库的一个版本,包含了源码和对应的jar包,方便开发者进行查看和使用。 ...

    displaytag-1.0-b3.zip

    总的来说,DisplayTag是一个强大的Web开发工具,它简化了在Java Web应用中创建复杂表格的过程,同时提供了许多高级功能,如分页、排序、导出和国际化。这个"displaytag-1.0-b3.zip"文件是开发者进行Web应用开发时,...

    displaytag

    DisplayTag是一个开源的Java Web开发库,主要用于生成复杂的表格和数据展示,尤其在处理分页和排序方面表现出色。这个压缩包包含DisplayTag的源代码、jar包以及相关的说明文档,为初学者提供了一个完整的Displaytag...

    displaytag-jar.rar_Displaytag.jar_displaytag_displaytag 1.2 jar_

    Displaytag是一个开源的Java库,专门用于创建复杂的表格布局,提供了许多高级功能,如分页、排序、国际化、导出等。在Web开发中,它作为一个JSP标签库使用,大大简化了在网页上处理表格数据的过程。"displaytag-jar....

    分页组件displaytag使用笔记

    DisplayTag是一个功能强大的开源JSP分页标签库,它为Java Web开发提供了便捷的分页解决方案。本篇文章将深入探讨DisplayTag的使用方法及其核心特性,帮助开发者更好地理解和应用这一工具。 1. **DisplayTag概述** ...

Global site tag (gtag.js) - Google Analytics