当前位置:文档之家› DisplayTag详解

DisplayTag详解

DisplayTag详解
DisplayTag详解

DisplayTag 详解

简介Introduction 】

DisplayTag 是一个开源的自定义标签库 ( Custom Tag lib ),他提供了直接而有效的格式化web 视图层数据的有效手段。

你可以在现在流行的web 应用的MVC 模式中集成

DisplayTag 到View 层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是

DisplayTag 在表格的格式化方面表现确实出色,当然,他也只能显示表格,视图层的大部分工作不就是使用表格来格式化数据嘛?!

好了,让我们通过图片来看看他是一个什么样子吧“怎么

样?是不是感觉不错那?如果答案是肯定的,那么你一定急着想自己试一试咯?!不要急,下面就让我们开始我们的

DisplayTag 之旅。

[b]【Hello DisplayTag 】[/b] 既然是一个tutorial ,所以,我们不想对像自定义标签的实现原理等进行解释,也就是说在此之前,我们假定你已经对自定义标签有一定的认识,当然,没有也无所谓,等这篇tutorial

完成后,你估计就会了解的差不多了。

呐,让我们从最简单的displaytag 的使用开始,就跟你的第

个程序往往是从HelloWorld 程序开始一样。

先忽略其他的配置问题,我们的JSP 文件的源代码如下:实际上,除去初始化和数据准备等操作,生成表格的代码只有

行,那就是:而他生成的表格就是这样的:怎么样?是不是很简单那?简单的代码就可以生成如此漂亮的表格,你有理由不用嘛?(因

为使用了Struts 的LabelValueBean ,所以表格上显示了原始的title ,不用着急,后面我们将会说道如何修改成你所期待的样子)

[b] 【配置configuration 】[/b]

Ok ,在我们运用DisplayTag 之前,我们需要对他的使用环境进行一些配置,或许有些复杂,但是,如果你是一个

WebApp 老手的话,其实并不难。

当然,在此之前,我们需要下载DisplayTag ,当前的最新版本是displaytag-1.0-b3 。你可以去SourceForge 下载它,下载网址是:

https://www.doczj.com/doc/973305471.html,/download.html 2.1 DisplayTag 的类库,依赖库和TLD 文件的添加解压下载下来的displaytag 的压缩包,之后依次拷贝

displaytag-1.0-b3.jar 和lib 目录下面的所有jar 文件到你自己的WEBAPP_HOME/WEB-INF/lib 目录下面

displaytag-11.tld ,displaytag-12.tld 和displaytag-el-12.tld

到WEBAPP_HOME/WEB-INF 目录下面。

他的依赖库包括:commons-beanutils

commons-collections ,commons-lang 以及

commons-logging 。

这里需要注意的问题就是,如果你连同Struts 一起使用的话,

DisplayTag 的依赖库实际上都包括在Struts1.1 的发布包中,你只需要将displaytag-1.0-b3.jar 文件拷贝到你自己的

WEBAPP_HOME/WEB-INF/lib 目录下面就可以了。

另外一个重要的问题就是,如果你的Struts1.1 发布包中的

commons lang 包不是2.0 版本或者更高版本的话,需要去

Apache 的Jakarta commons 项目主页上下载2.0 版本的

commons-lang 类库,并替换掉原来的commons-lang 类库,否则,运行的时候将报错误并不能运行。

2.2 web.xml 的配置要使用DisplayTag 提供的自定义标签,跟其他自定义标签的使用没有什么两样,同样,需要在web.xml 文件中注册

taglib ,下面是笔者的web.xml 文件中taglib 注册的片断:

https://www.doczj.com/doc/973305471.html, /WEB-INF/displaytag-

11.tldhttps://www.doczj.com/doc/973305471.html, /WEB-INF/displaytag-

12.tldhttps://www.doczj.com/doc/973305471.html,/el /WEB-INF/displaytag-

el-12.tld 在这里有必要说明一下这三个tld 之间的区别,这其实在DisplayTag 的官方网站上有提到,这里只是重复一下:displaytag-11.tld 只是提供对

JSP1.1 规范的的支持,而displaytag-12.tld 则提供了对

JSP1.2 规范的支持, 最后的 displaytag-el-12.tld 除了提供跟 displaytag-12.tld 提供的特性之外,他提供对 Expression Lanuage 的支持。 所以, 为了在 web 应用移植于不同的 app server 的时候可以更少的修改文件,这里将所有的 tld 都添 加在这里以便使用。

配置完成 taglib 后,下面是可选择的配置项,如果你不需要 的话,可以不进行配置,但建议还是配置他们为好。

第一幅图中可以看到 diaplaytag 提供了数据的导出功能,如 果说你的 Table 存在的页面被 include 在另一个页面中,比

如如果你使用 Struts 的话,那么 Tiles 的使用就是这种情况,

工作正常。

中添加以下 filter 配置项(按照 web.xml 文件中各个 elements 的顺序规定, 需要将元素添加在前面, 以下类似的情况请参考 web.xml 规范):

ResponseOverrideFilter

org.displaytag.filter.ResponseOverrideFilter 其次,添加 filter

的映射: ResponseOverrideFilter

*.doResponseOverrideFilter *.jsp 这样,对于 web.xml 的配置基本就完成了。对于 在 web.xml 文件中进行配置的手段,将在后面提到,不归入 此类。

那么你需要为 web.xml 中 添加 filter ,以便数据到处功能能够

首先,在 web.xml I18N

2.3 属性文件的配置( displaytag.properties )

DisplayTag 提供了一个属性文件( displaytag.properties ) 来定义表格显示的时候提供的信息,比如分页显示或者导出数据等的提示信息等,但是因为这个属性文件默认的文件随

jar 文件一起发布而且是英文的,所以,我们需要对其进行定制以满足中文或者其他平台下的使用。

要对这个属性文件进行定制,有三种途径:

1】使用标签,这个标签可以对单个的属性进行设置,也

就是说如果要对整个的应用页面都进行定制的话,需要每个页面都使用这个标签并对每一个要定制的属性都使用它,这很明显不是太行得通,所以,displaytag 还提供了下面得途径;

2】使用DisplayPropertiesLoaderServlet

来初始化环境,

这种方式方式可以对整个应用的属性进行定制,但是,笔者使用这种方式的时候报错,不过,还是将其在web.xml 文件中的配置项列于此:DisplayPropertiesLoaderServlet DisplayPropertiesLoaderServlet displaytag initialization servlet

org.displaytag.properties.DisplayPropertiesLoaderServlet p roperties.filename

/WEB-INF/displaytag.properties1 这种方法也是读取制。

diaplaytag.properties 中的属性配置对整个应该环境进行定

最后,也就是就第三中方式,也是笔者最常用的方式,那就是:

3 】新建一个diaplaytag.properties 属性文件,向该文件中

添加需要覆盖的或者需要另外定制的属性(具体有那些属性,

DisplayTag 网站提供了一个PDF 格式的manual ,上面有所这个文件的一个样本笔者将在后面的实例部分进行罗列。在准备好属性文件后,将其放到

有可以使用的属性的列表,因为太长,所以这里不作罗列)。WEBAPP_HOME/WEB-INF/classes 目录下面就可以了。我想这也比其他方式方便的多,另外,这种方式也是针对整个的WEB 应用进行定制。

以上就是配置文件的三种配置方式,第一种只能对单个属性单个页面进行,而后面两种方式可以针对整个的web 应用,尤其是第三种方式,笔者尤其倡导。

2.4 CSS 和img 的移植如果说你试着将页面中的这一句去掉的话:

/css/screen.css" type="text/css" media="screen, print" />

或许你会看到不想看到的景象,或者说你看到的表格将与你所期待的大相径庭:怎么样?与上面的简单实例相比,是不是淡色不少?!所以,要使得Displaytag 提供最好的显示效果,或者说要显示正常,我们不但要保证服务器端的配置,

从不同的 scope 中抽取数据并进行显示,根据 Collection 形 同样的也要保证视图层的配置,比如说 CSS 和 Images 。 故此,建议将下载的压缩包中的 diaplaytag.war 文件包中的 css 目录和 img 目录拷贝到你当前工作的 WEBApp 的根目录

面,这样,就可以避免以上的事情发生。当然,这只是可 以正常显示的必要条件, 像上面那样, 如果页面中不引入 css

的话,同样会显示不正常。

至此,你的 Displaytag 的配置就算完成了。怎么样?是不是 有些繁琐那?!不过不用担心,与它所带给你的便捷和强大 的功能相比,这算不了什么。

好了,下面就让我们对它的一些概念进行一下探索吧!

[b]DisplayTag Tutorial by DarrenWang[/b]

DisplayTag 一共提供了五种标签用来显示显示表格,他们 是,,,和。通过这几个标签的组合可以完成大部分表格的显示 功能。下面,笔者将就各个标签情况做一阐述,其中将会包 括其功能以及使用中可能遇到的问题。

3- 1 标签说明

DisplayTag 标签库的顶层标签, 用来显示整体的表格,CopyRight June ,2004:em510:

By DarrenWang , All Rights Reserved !

接上回书说道, :em325:

[b] 【 displaytag

提供的自定义标签说明】 [/b] 通过

displaytag标签的常用属性和方法

displaytag标签的常用属性和方法 2009年11月06日星期五08:32 P.M. 1.可以给它加上样式等,也可以定义显示的列 2.给它加个链接也很简单,下面的代码给name加了连接,并附带id参数 下面介绍几个Display最常用的功能,更多功能请参考https://www.doczj.com/doc/973305471.html,/displaytag-examples-1.1/。 1. 分页 如果想对代码分页,只需在display:table标签中添加一项pagesize="每页显示行数",如 2. 对列排序 display tag可对列进行排序,就是点击列名,对该列的数据进行排序。你只需对想要排序的列添加sort="true" 就OK,如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数",可默认对指定的列排序。 如果table有分页,Display Tag默认只对当前页进行排序,如果想对整个list排序,可以在display:table之间添加一段代码: 其实这种方式也不是很好,它是把所有记录一次性全查出来,浪费资源,而实际应用中,我们只要按照某种排序字段查询出本页显示的记录条数,所有可以采用外部排序: 然后就要在Action中获取排序的字段,排序的方式,查询每页显示记录数。 3. 导出数据 在display:table中添加export="true",看看会出现什么!Display Tag默认会提供三种数据导出方式:CSV、Excel、XML 。 另外Display Tag还可以导出为PDF格式,在https://www.doczj.com/doc/973305471.html,/itext/下载一个辅助包iText.jar,copy到lib目录下,然后在display:table之间添加一段代码: ,大功告成。 4. Display Tag的属性设置 前面所说的display:setProperty 是一种改变Display Tag属性的方法,但是在每个jsp中都要写太麻烦了。 Display Tag中设置了很多默认的属性,它有一个专门的属性文件,是在它的jar包中的displaytag/properties/TableTag.properties 想要改变它的默认属性,我们可以在WEB-INF\classes下新建一个文件displaytag.properties,

log4j学习

log4j 如同Hadoop一样,把需要的jar包(hadoop.jar )和配置文件,放到CLASSPATH中, 配置Log4j也要如此,把log4j-1.2.8.jar,log4j.properties放到classpath中。配置 文件配置的是Log输出到哪里,如何输出,何时输出,哪些类的log要输出(等级)(Where, How,When,Who) 代码中用到的 private final Log log = LogFactory.getLog(getClass()); 得到类的全名,Log4j框架就会去找相应的package是否有设置输出log,以及它的等级。 如果等级为DEBUG那么log.isDebugEnabled()为true。如下所示,如果等级为INFO, 那么log.isInfoEnabled()、log.isWarnEnabled()、log.isErrorEnabled()这三个为true, 其他的为false?(有待确认) 等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则 不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而 DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。 if (log.isDebugEnabled()){ log.debug("111"); } if (log.isInfoEnabled()){ https://www.doczj.com/doc/973305471.html,("222"); } 完整的文章如下: 在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人 感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。 此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。 说明:下面分为三部分, 第一部分讲解如何配置log4j; 第二部分为对log4j.properties配置文件中的各个属性的讲解; 第三部分为对log4j的详细讲解。 如果只想配置上log4j,那么只需要看前两个部分就可以,如果想对log4j深入了解,则还需看第三部分。 一、Log4j配置

OpenReports中文支持完全解决方案(新)

目录 一、主要解决的问题 (2) 1 页面显示支持中文 (2) 2 与服务器或数据库的交互支持中文 (2) 3 查询结果支持中文 (2) 4 导出文件名及内容支持中文 (2) 二、解决方案及方法 (2) 1 增加的类 (2) 1.1 cn.ExportDelegate (2) 1.2 cn.ResponseOverrideFilter (3) 1.3 cn.SetCharacterEncodingFilter (3) 1.4 org.displaytag.export.PdfView (4) 2 在web.xml中配置两个Filter,字符编码过滤器字符集设置为GBK (6) 3 增加PDF中文支持的JAR包 (6) 4 struts.properties配置文件字符编码改为GBK (7) 5 国际化配置文件 (7) 6修改displaytag.properties配置文件 (8) 7JSP页面文件字符集全部改为GBK (10)

OpenReports中文支持完全解决方案 一、主要解决的问题 1 页面显示支持中文 2 与服务器或数据库的交互支持中文 3 查询结果支持中文 4 导出文件名及内容支持中文 二、解决方案及方法 1 增加的类 1.1 cn.ExportDelegate 直接来自原文件org.displaytag.filter.ExportDelegate,只是将文件名转码, 解决中文表格数据和导出中文文件名时,会产生乱码现象。被cn.ResponseOverrideFilter调用。

1.2 cn.ResponseOverrideFilter 直接来自原文件org.displaytag.filter.ResponseOverrideFilter,原有ResponseOverrideFilter路径指向新建Filter的路径,必须。 1.3 cn.SetCharacterEncodingFilter 是一个标准的自定义字符集转换Filter,必须。

j2ee实习报告

《j2ee软件开发》课程设计报告 系部:信息工程系 班级:计网0931班 姓名:陈银生 指导老师:陆立松、陈晓华、田娟 学期:2011-2012-1

目录 一、对Struts2的理解 (3) Struts2的模板和主题介绍 (3) jsp:基于JSP的模板技术 (4) 理解Struts2拦截器 (4) 实现Struts2拦截器原理 (4) displaytag问题 (4) 二、对各程序的分析 (5) ※对程序e_learning的分析 (5) 页面关系图 (5) 程序的调试 (5) 关键代码的分析 (6) ※对程序S2SH-Page的分析 (7) 页面关系图 (7) 关键代码的分析 (7) ※对程序s2shOaDemo的分析 (8) 页面实现的效果 (8) 重要代码分析 (10) ※对程序ckeditor的分析 (11) ※对程序display的分析 (11) 分页 (13) 对列排序 (13) 导出数据 (13) Display Tag的属性设置 (13) DisplayTag的不足 (13) 三、学习心得 (14)

在为期三个礼拜的j2ee课程设计中,我分别从e_learning、S2SH-Page、s2shOaDemo、ckeditor等程序中,再加上老师的讲解,让我受益匪浅啊,因此我将这三周老师的讲解做了做了初步总结工作。在总结之初我看到了两个问题。一个是要对J2EE认真总结,因为在以后的很长时间里我会离不开J2EE;另一个是要对学习过程和学习方法认真总结,因为这些将伴随我的一生。其实这两方面都很有指导意义,它们指引我未来一段时间要怎么度过,要学习哪些J2EE知识,要怎么学习这些知识。不过总结还有很大缺陷,J2EE组件间的联系和.NET之间的对比等都不是十分明朗。要在后续的课程学习和实践学习中再做完善与总结。J2EE有两个设计初衷,对生产厂商来说,它是一套开放标准,加入这个标准各厂商的产品就是一个成熟的企业运算体系中可以替换的部件了;对于开发者来讲,J2EE是一套现成的解决方案,采用这个解决方案,企业应用中的许多难题,如跨平台、事务处理、安全性等等,就会迎刃而解。所以,下面就是我对这些程序的一些分析。 一、对Struts2的理解 Struts2的模板和主题介绍 因为Struts2所有的UI标签都是基于主题和模板的,主题和模板是Struts2所有UI标签的核心。模板是一个UI标签的外在表示形式,例如:当我们使用标签时,Struts2就会根据对应select模板来生成一个有模板特色的下拉列表框。如果为所有的UI标签都提供了对应的模板,那么这系列的模板就形成了一个主题。 对于一个JSP页面里包含的UI标签而言,即可以直接设置该UI标签需要使用的模板,也可以设置该UI标签使用的主题。实际上对开发者而言,并不推荐直接设置模板属性,而是应该选择特定主题。设置主题的方法有以下几种:1,通过设定特定UI标签上的theme属性来指定主题。 2,通过设定特定UI标签外围的Form标签的theme属性来指定主题。 3,通过取得page会话范围内以theme为名称的属性来确定主题。 4,通过取得request会话范围内以theme为名称的属性来确定主题。 5,通过取得session会话范围内以theme为名称的属性来确定主题。 6,通过取得application会话范围内以theme为名称的属性来确定主题。

displaytable标签翻页中文乱码

display:table标签翻页中文乱码解决方案 出现乱码的前提条件,当搜索条件为中文时,查询出来了几页的数据,这时进行翻页操作,到下一页时搜索条件中的中文乱码了。 出现乱码的原因是因为翻页是通过get请求提交的,中文被编码,而后台程序对没有对其解码,导致了中文乱码。所以要解决这个问题最有效的办法就是通过post请求提交。在出现这个问题时,我在网上也搜索了一些资料,不过改成post提交的方法却没有。于是我看了displaytag的源码。TableWriterTemplate.java是用来画表格的抽象类,writeTable()方法定义了话表格的整个步骤,源码如下: public void writeTable(TableModel model, String id) throws JspException { try { // table id used for logging this.id = id; TableProperties properties = model.getProperties(); if (log.isDebugEnabled()) { log.debug("[" + this.id + "] writeTable called for table [" + this.id + "]"); } // Handle empty table boolean noItems = model.getRowListPage().size() == 0; if (noItems && !properties.getEmptyListShowTable()) { writeEmptyListMessage(properties.getEmptyListMessage()); return; } // Put the page stuff there if it needs to be there... if (properties.getAddPagingBannerTop()) { // search result and navigation bar writeTopBanner(model);//此方法会动态拼装了翻页的 onclick事件执行的js,提交的参数。 } // open table

DisplayTag详解

DisplayTag详解 【简介Introduction】 DisplayTag是一个开源的自定义标签库(Custom Tag lib),他提供了直接而有效的格式化web视图层数据的有效手段。你可以在现在流行的web应用的MVC模式中集成DisplayTag到View层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格,视图层的大部分工作不就是使用表格来格式化数据嘛?! 好了,让我们通过图片来看看他是一个什么样子吧!^_^怎么样?是不是感觉不错那?如果答案是肯定的,那么你一定急着想自己试一试咯?!不要急,下面就让我们开始我们的DisplayTag之旅。 [b]【Hello DisplayTag】[/b] 既然是一个tutorial,所以,我们不想对像自定义标签的实现原理等进行解释,也就是说在此之前,我们假定你已经对自定义标签有一定的认识,当然,没有也无所谓,等这篇tutorial 完成后,你估计就会了解的差不多了。 呐,让我们从最简单的displaytag的使用开始,就跟你的第一个程序往往是从HelloWorld程序开始一样。

先忽略其他的配置问题,我们的JSP文件的源代码如下:实际上,除去初始化和数据准备等操作,生成表格的代码只有一行,那就是:而他生成的表格就是这样的:怎么样?是不是很简单那?简单的代码就可以生成如此漂亮的表格,你有理由不用嘛?(因为使用了Struts的LabelValueBean,所以表格上显示了原始的title,不用着急,后面我们将会说道如何修改成你所期待的样子) [b]【配置configuration】[/b] Ok,在我们运用DisplayTag之前,我们需要对他的使用环境进行一些配置,或许有些复杂,但是,如果你是一个WebApp老手的话,其实并不难。 当然,在此之前,我们需要下载DisplayTag,当前的最新版本是displaytag-1.0-b3。你可以去SourceForge下载它,下载网址是: https://www.doczj.com/doc/973305471.html,/download.html 。 2.1 DisplayTag的类库,依赖库和TLD文件的添加 解压下载下来的displaytag的压缩包,之后依次拷贝displaytag-1.0-b3.jar和lib目录下面的所有jar文件到你自己的WEBAPP_HOME/WEB-INF/lib目录下面,拷贝displaytag-11.tld,displaytag-12.tld和displaytag-el-12.tld 到WEBAPP_HOME/WEB-INF目录下面。 他的依赖库包括:commons-beanutils,

jsp table标签_烟雨荼楼

JSP Display标签的使用TE收藏TE Display Tag Lib是一个标签库用来处理jsp网页上的Table功能非常强可以对的Table进行分页、数据导出、分组、对列排序等等反正我在做项目时需要的功能它都给我提供了而且使用起来非常的方便。能够大大减少代码量。介个是Display Tag的官方网站 https://www.doczj.com/doc/973305471.html,。首先当然是要下载它的jar包了这里可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包apache的commons-lang和standard 包更多的辅助包可以在这里下载。在web.xml下添加一个filter exportFilter org.displaytag.filter.ResponseOverrideFilter 在jsp页面做一个引用首先我们定义一个list 当我们想在jsp页面上显示这个list时我们只需要写一句话display tag会自动生成一个table 如果list是从控制层抛出来的name可使用EL表达式表示这是最简单的display tag的使用我们可以给它加上样式等也可以定义显示的列下面的table显示复杂一些如果想要给它加个链接也很简单下面的代码给name加了连接并附带id参数email也自动连接到mailto:XXX 下面介绍几个Display最常用的功能更多功能请参考https://www.doczj.com/doc/973305471.html,/index.jsp。1. 分页如果想对代码分页只需在display:table标签中添加一项pagesize每页显示行数如2. 对列排序display tag可对列进行排序就是点击列名对该列的数据进行排序。你只需对想要排序的列添加sorttrue 就OK如下面的代码可对前三列进行排序。在

Display标签使用

DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在 https://www.doczj.com/doc/973305471.html, 一、最简单的情况,未使用标签 <%request.setAttribute( "test", new ReportList(6) );%> 标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。 二、使用标签的情况 property对应List里对象的属性(用getXXX()方法取得),title则对应表格表头里的列名。定义列有两种方式: A、 使用标签里的property属性来定义 B、email@https://www.doczj.com/doc/973305471.html,标签体里增加内容,可以是常量,也可以用其他标签等等 两种方式比较,用property属性来定义更加快速和利于排序。 三、表格显示样式的定义 A、在标签里指定标准的html属性,烦琐 B、修改样式表

DisplayTag详解

DisplayTag 详解 简介Introduction 】 DisplayTag 是一个开源的自定义标签库 ( Custom Tag lib ),他提供了直接而有效的格式化web 视图层数据的有效手段。 你可以在现在流行的web 应用的MVC 模式中集成 DisplayTag 到View 层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是 DisplayTag 在表格的格式化方面表现确实出色,当然,他也只能显示表格,视图层的大部分工作不就是使用表格来格式化数据嘛?! 好了,让我们通过图片来看看他是一个什么样子吧“怎么 样?是不是感觉不错那?如果答案是肯定的,那么你一定急着想自己试一试咯?!不要急,下面就让我们开始我们的 DisplayTag 之旅。 [b]【Hello DisplayTag 】[/b] 既然是一个tutorial ,所以,我们不想对像自定义标签的实现原理等进行解释,也就是说在此之前,我们假定你已经对自定义标签有一定的认识,当然,没有也无所谓,等这篇tutorial 完成后,你估计就会了解的差不多了。 呐,让我们从最简单的displaytag 的使用开始,就跟你的第 个程序往往是从HelloWorld 程序开始一样。 先忽略其他的配置问题,我们的JSP 文件的源代码如下:实际上,除去初始化和数据准备等操作,生成表格的代码只有 行,那就是:而他生成的表格就是这样的:怎么样?是不是很简单那?简单的代码就可以生成如此漂亮的表格,你有理由不用嘛?(因

为使用了Struts 的LabelValueBean ,所以表格上显示了原始的title ,不用着急,后面我们将会说道如何修改成你所期待的样子) [b] 【配置configuration 】[/b] Ok ,在我们运用DisplayTag 之前,我们需要对他的使用环境进行一些配置,或许有些复杂,但是,如果你是一个 WebApp 老手的话,其实并不难。 当然,在此之前,我们需要下载DisplayTag ,当前的最新版本是displaytag-1.0-b3 。你可以去SourceForge 下载它,下载网址是: https://www.doczj.com/doc/973305471.html,/download.html 2.1 DisplayTag 的类库,依赖库和TLD 文件的添加解压下载下来的displaytag 的压缩包,之后依次拷贝 displaytag-1.0-b3.jar 和lib 目录下面的所有jar 文件到你自己的WEBAPP_HOME/WEB-INF/lib 目录下面 displaytag-11.tld ,displaytag-12.tld 和displaytag-el-12.tld 到WEBAPP_HOME/WEB-INF 目录下面。 他的依赖库包括:commons-beanutils commons-collections ,commons-lang 以及 commons-logging 。 这里需要注意的问题就是,如果你连同Struts 一起使用的话, DisplayTag 的依赖库实际上都包括在Struts1.1 的发布包中,你只需要将displaytag-1.0-b3.jar 文件拷贝到你自己的 WEBAPP_HOME/WEB-INF/lib 目录下面就可以了。 另外一个重要的问题就是,如果你的Struts1.1 发布包中的

display table标签

在web.xml下添加一个filter exportFilter org.displaytag.filter.ResponseOverrideFilter 在jsp页面做一个引用: <%@ taglib uri="https://www.doczj.com/doc/973305471.html,/el" prefix="display" %> 当我们想在jsp页面上显示这list时,我们只需要写一句话 display tag会自动生成一个table 如果list是从控制层抛出来的,name可使用EL表达式表示 这是最简单的display tag的使用,我们可以给它加上样式等,也可以定义显示的列,下面的table显示复杂一些 阶段1 阶段2 阶段3

也谈DisplayTag(一)

也谈DisplayTag(一) 下决心好好研究下DisplayTag,目前还没有看过源码,只是一边Google一边试验写的。希望有说的不对的大家指出,免得自己误人子弟 开篇: DisplayTag是一个开源的自定义标签库(Custom Tag lib),他提供了直接而有效的格式化web 视图层数据的有效手段。你可以在现在流行的web应用的MVC模式中集成DisplayTag到View 层,其提供的强大表格格式化功能一定会令你爱不释手。或许上面说的有些夸张了,但是DisplayTag在表格的格式化方面表现确实出色,当然,他也只能显示表格。 Ps:这段是转的,其实自己的理解就是DisplayTag就是显示数据的表格,只是封装了显示的方式。注意:他需要你自己建造数据源,存在一个在Jsp页面可以接受的对象里供标签使用。 使用方法介绍前,我们要做些准备工作,要下载displaytag的jar文件。下载网址是:https://www.doczj.com/doc/973305471.html,/download.html 。 DisplayTag的类库,依赖库和TLD文件的添加 解压下载下来的displaytag的压缩包,之后依次拷贝displaytag-1.1-1.jar和lib目录下面的所有jar文件到你自己的WEBAPP_HOME/WEB-INF/lib目录下面,在displaytag-1.1.1-src\displaytag-1.1.1\displaytag\src\main\resources\META-INF拷贝displaytag.tld 和displaytag-el.tld到WEBAPP_HOME/WEB-INF目录下面。 他的依赖库包括:commons-beanutils,commons-collections,commons-lang以及commons-logging。 这里需要注意的问题就是,如果你连同Struts一起使用的话,DisplayTag的依赖库实际上都包括在Struts的发布包中,你只需要将displaytag-1.jar文件拷贝到你自己的WEBAPP_HOME/WEB-INF/lib目录下面就可以了。 另外一个重要的问题就是,如果你的Struts发布包中的commons lang包不是2.0版本或者更高版本的话,需要去Apache的Jakarta commons项目主页上下载2.0或者更高版本的commons-lang类库,并替换掉原来的commons-lang类库,否则,运行的时候将报错误并不能运行。 使用: 新建一个Jsp页面,displayTagStudy.jsp Jsp代码 Jsp代码 <%@ page contentType="text/html;chatset=GBK"%>

JSPTABLE标签

用了一段时间的Display Tag,觉得非常好用,可在论坛上发现好像使用这个东东的人挺少的,那偶也来写篇文章。 Display Tag Lib是一个标签库,用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页、数据导出、分组、对列排序等等,反正我在做项目时需要的功能它都给我提供了,而且使用起来非常的方便。能够大大减少代码量。 介个是Display Tag的官方网站 首先当然是要下载它的jar包了,这里https://www.doczj.com/doc/973305471.html,/1.2/可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要两个辅助包:apache的commons-lang和standard包,更多的辅助包可以在这里下载。 在web.xml下添加一个filter exportFilter org.displaytag.filter.ResponseOverrideFilter 在jsp页面做一个引用: <%@ taglib uri="https://www.doczj.com/doc/973305471.html,/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 tag会自动生成一个table 如果list是从控制层抛出来的,name可使用EL表达式表示 这是最简单的display tag的使用,我们可以给它加上样式等,也可以定义显示的列,下面的table显示复杂一些

实现把JSP文件导出为PDF文件

实现把JSP文件导出为PDF文件 不是技术,而是那种探索的方法。经过学习DisplayTag,我可以触类旁通,再学习别的标签会很快。现在总结出来和大家分享下 我刚工作不久,经理要我实现把JSP文件导出为PDF文件。我想找一个比较简单,易于开发,易于维护的某中方法。在网上碰到我以前的恩师,他建议我用DisplayTag试试。我花了一天的时间配置,花了半天的时间来运行例子。结果大失所望,没有得到我想要的结果。不过尝试的过程中,却也有意外的收获。不是技术,而是那种探索的方法。经过学习DisplayTag,我可以触类旁通,再学习别的标签会很快。现在总结出来和大家分享下。 学习某种开源的标签,可以先到网上去搜相关的文章。比如我学习DisplayTag,就到百度或者GOOGLE去搜索。浏览搜索出来的文章,把你觉得有用处的信息或文章COPY集中到一处,便于以后的查询。 对于有些常用的标签会有很多相关的总结,前辈们写的都很不错,全是经验之谈,好多的文章值得我们仔细的研究。网站上给出了使用标签要用到的JAR包,TID文件,使用标签的例子,开发标签的源码,开发标签的团队,开发标签的目的等。 我搜DisplayTag时,文章不是很多,大多数的人都在转载相同的文章。网上的文章原创的少啊。做程序的都太辛苦了,他们很忙,没时间写。有时间写的时候就有些记不清楚了,怕写错了。不然,一个好的技术,大家都来写自己的经验,每个人说一句话,都会对学的人有很大的帮助。 不过一般这些说明都是E文的,如果你的英文不好也没有关系,把金山词霸打开,设置成鼠标取词,这样很方便的就可以通读E文。如果没有金山词霸也没有关系,有几个关键的单词记住就可以了,比如例子(EXAMPLE),下载(DOWN),指南(TUTORIAL)等常用的词汇。千万不要看到全是E文就放弃,学习新知识,特别是编程方面,看E文是避免不了的。我们可以顺便学习一下英语啊,我的英语也不好,不过时间常了,不用看懂每个词,也大概会知道这段要告诉我们什么。 看文章对标签有了一个初步的了解,了解要考虑这个标签所实现的是不是你想要的,是不是符合你的要求,有些标签只符合你的部分要求。就象 DisplayTag,它只符合我的部分要求,不是很理想。除了看文章可以了解,还可以去开发标签的官方网站,上面是一定会有例子的。 找EXAMPLE单词,它的相关链接一般都是例子,你可以看到使用标签可以生成的效果。 觉得这个标签不错就来学习它吧,亲自动手做是最好的学习方法,没有实践是不知道自己会不会的。实践之后才会运用自如,把知识存到我们的大脑里。当然如果你只是想了解不用实践。 使用标签少不了一些相关的JAR包之类的文件,在官网上找到DOWNLOAD的链接,下载JAR包,TLD文件。在Display Tag的官方网站上有四个你可以下载的文件, displaytag-1.1-bin.tar.gz, displaytag-1.1-bin.zip, displaytag-1.1-src.tar.gz, displaytag-1.1-src.zip 我不明白这四个文件这样打包的意义是什么(有知道的可以告诉我吗?),不过这四个文件里是可以找到你要找的东西,解压缩可以看到里面的文件里面也有例子。我是用比较笨的方法,把四个都打开了,每个包都翻了一遍。找到了

相关主题
文本预览
相关文档 最新文档