没有合适的资源?快使用搜索试试~ 我知道了~
首页JSP Display标签
资源详情
资源评论
资源推荐

[b]【配置 conguration】[/b]
Ok,在我们运用 DisplayTag 之前,我们需要对他的使用环境进行一些配置,或许有些复杂,但是,如
果你是一个 WebApp 老手的话,其实并不难。
当然,在此之前,我们需要下载 DisplayTag,当前的最新版本是 displaytag-1.0-b3。你可以去
SourceForge 下载它,下载网址是:http://displaytag.sourceforge.net/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 注册的片断:
<taglib>
<taglib-uri>http://displaytag.sf.net</taglib-uri>
<taglib-location>/WEB-INF/displaytag-11.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://displaytag.sf.net</taglib-uri>
<taglib-location>/WEB-INF/displaytag-12.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>http://displaytag.sf.net/el</taglib-uri>
<taglib-location>/WEB-INF/displaytag-el-12.tld</taglib-location>
</taglib>
在这里有必要说明一下这三个 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 的使用就是这种情况,那么你需要为 web.xml
中添加 lter,以便数据到处功能能够工作正常。
首先,在 web.xml 中添加以下 lter 配置项(按照 web.xml 文件中各个 elements 的顺序规定,需要
将<lter>元素添加在<servlet>前面,以下类似的情况请参考 web.xml 规范):

<lter>
<lter-name>ResponseOverrideFilter</lter-name>
<lter-class>org.displaytag.lter.ResponseOverrideFilter</lter-class>
</lter>
其次,添加 lter 的映射:
<lter-mapping>
<lter-name>ResponseOverrideFilter</lter-name>
<url-pattern>*.do</url-pattern>
</lter-mapping>
<lter-mapping>
<lter-name>ResponseOverrideFilter</lter-name>
<url-pattern>*.jsp</url-pattern>
</lter-mapping>
这样,对于 web.xml 的配置基本就完成了。对于 I18N 在 web.xml 文件中进行配置的手段,将在后面
提到,不归入此类。
2.3 属性文件的配置(displaytag.properties)
DisplayTag 提供了一个属性文件(displaytag.properties)来定义表格显示的时候提供的信息,比如
分页显示或者导出数据等的提示信息等,但是因为这个属性文件默认的文件随 jar 文件一起发布而且是英
文的,所以,我们需要对其进行定制以满足中文或者其他平台下的使用。
要对这个属性文件进行定制,有三种途径:
【1】使用<display:setProperty>标签,这个标签可以对单个的属性进行设置,也就是说如果要对整
个的应用页面都进行定制的话,需要每个页面都使用这个标签并对每一个要定制的属性都使用它,这很明
显不是太行得通,所以,displaytag 还提供了下面得途径;
【2】使用 DisplayPropertiesLoaderServlet 来初始化环境,这种方式方式可以对整个应用的属性进行
定制,但是,笔者使用这种方式的时候报错,不过,还是将其在 web.xml 文件中的配置项列于此:
<servlet id="DisplayPropertiesLoaderServlet">
<servlet-name>DisplayPropertiesLoaderServlet</servlet-name>
<display-name>DisplayPropertiesLoaderServlet</display-name>
<description>displaytag initialization servlet</description>
<servlet-class>org.displaytag.properties.DisplayPropertiesLoaderServlet</servlet-class>
<init-param>
<param-name>properties.lename</param-name>
<param-value>/WEB-INF/displaytag.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
这种方法也是读取 diaplaytag.properties 中的属性配置对整个应该环境进行定制。
最后,也就是就第三中方式,也是笔者最常用的方式,那就是:
【3】新建一个 diaplaytag.properties 属性文件,向该文件中添加需要覆盖的或者需要另外定制的属性
(具体有那些属性,DisplayTag 网站提供了一个 PDF 格式的 manual,上面有所有可以使用的属性的列
表,因为太长,所以这里不作罗列)。这个文件的一个样本笔者将在后面的实例部分进行罗列。在准备好
属性文件后,将其放到 WEBAPP_HOME/WEB-INF/classes 目录下面就可以了。我想这也比其他方式方
便的多,另外,这种方式也是针对整个的 WEB 应用进行定制。
以上就是配置文件的三种配置方式,第一种只能对单个属性单个页面进行,而后面两种方式可以针对整

个的 web 应用,尤其是第三种方式,笔者尤其倡导。
2.4 CSS 和 img 的移植
如果说你试着将页面中的这一句去掉的话:
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/screen.css"
type="text/css" media="screen, print" />,或许你会看到不想看到的景象,或者说你看到的表格将
与你所期待的大相径庭:
怎么样?与上面的简单实例相比,是不是淡色不少?!所以,要使得 Displaytag 提供最好的显示效果,
或者说要显示正常,我们不但要保证服务器端的配置,同样的也要保证视图层的配置,比如说 CSS 和
Images。
故此,建议将下载的压缩包中的 diaplaytag.war 文件包中的 css 目录和 img 目录拷贝到你当前工作的
WEBApp 的根目录下面,这样,就可以避免以上的事情发生。当然,这只是可以正常显示的必要条件,
像上面那样,如果页面中不引入 css 的话,同样会显示不正常。
至此,你的 Displaytag 的配置就算完成了。怎么样?是不是有些繁琐那?!不过不用担心,与它所带给
你的便捷和强大的功能相比,这算不了什么。
好了,下面就让我们对它的一些概念进行一下探索吧!
[b]DisplayTag Tutorial by DarrenWang[/b]
CopyRight June,2004:em510:
By DarrenWang,All Rights Reserved!
接上回书说道,:em325:
[b]【displaytag 提供的自定义标签说明】[/b]
DisplayTag 一共提供了五种标签用来显示显示表格,他们是
<display:table>,<display:column>,<display:setProperty>,<display:caption>和
<display:footer>。通过这几个标签的组合可以完成大部分表格的显示功能。下面,笔者将就各个标签
情况做一阐述,其中将会包括其功能以及使用中可能遇到的问题。
3-1 <display:table>标签说明
DisplayTag 标签库的顶层标签,用来显示整体的表格,通过从不同的 scope 中抽取数据并进行显示,根
据 Collection 形式的数据中的属性标志来罗列数据。剩下的所有的 diplaytag 标签都嵌套于此标签之内。
他所提供的主要功能包括:以 CSV,XML 和 Excel 形式导出数据;对于较长的数据,提供分页显示功能
等等。
实例代码:
<display:table name="sessionScope.InfoList" pagesize="3" requestURI="" export="true">
</display:table>
该标签有一系列的属性(Attribute),因为太多,这里仅就几个主要而常用的进行说明:
Name 属性:必须指定,表示 scope 中的数据标志,通过 name 来引用 scope 中的数据并进行显示。
可以指定 pageScope,requestScope,sessionScope 和 applicationScope。其中 requestScope
是缺省的 scope,如果数据像 request.setAttribute(“Infolist”,list)的形式放入 requestScope,那么
name 属性可以直接像[name=“Infolist”]的形式指定。而像 sessionScope 的话,就要像上面的例子中
那种形式指定了。
Id 属性:指定显示表格的唯一标志,在后面你可以通过 yourID_rowNum 的形式显示或者使用每行数据
的行号。比如:如果指定 id=”tableID”,那么,<%=tableID_rowNum%>就会输出数据的行号。而
剩余10页未读,继续阅读














血舞齐天
- 粉丝: 3
- 资源: 4
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论1