Joinclass Inc  
软件开发 软件配置 项目管理 软件工程
公告
  • 本人联系方式: E-mail: tilanmaster@gmail.com msm: J.joy@msn.com
日历
统计
  • 随笔 - 53
  • 文章 - 52
  • 评论 - 67
  • 引用 - 0

导航

常用链接

留言簿(1)

随笔分类(53)

随笔档案(53)

文章分类(61)

相册

JAVA学习链接

搜索

  •  

积分与排名

  • 积分 - 90249
  • 排名 - 77

最新评论

阅读排行榜

评论排行榜

 
displaytag的使用方法(用于数据表格的显示和功能控制)Displaytag1.1版本使用方法
一、   安装步骤
1.        下载displaytag-1.1-bin.zip后解压缩并将displaytag-examples-1.1.war中的WEB-INF/lib类包放入自己的web应用程序中的WEB-INF/lib目录下,并将WEB-INF/classes中的displaytag.properties放入到自己web应用程序中的WEB-INF/classes目录下。

2.        将displaytag-examples-1.1.war中的资源文件放置到与自己web应用程序同级的目录中,资源文件包括css,images,img三个文件夹下的所有内容。
二、   使用方法
1、 得到要显示的数据源
有四种范围
   pageScope
   requestScope (默认)  <display:table name="test" >
   sessionScope  <display:table name="sessionScope.sessiontest" > 注意,这里要指定范围   
  applicationScope 同上
2、 全部数据显示
<% request.setAttribute( "test", new TestList(20, false) ); %>
  <display:table name="test" ></display:table>
  标签将遍历List里的每一个对象,并将对象里的所有属性显示出来。
  name属性用来对应list对象的名称
3、 部分数据显示
<% request.setAttribute( "test", new TestList(20, false) ); %>
  <display:table name="test" >
      <display:column property="id" title="ID"/>
         <display:column property="name" title="姓名" />
      <display:column property="email" title="电子邮件"/>
      <display:column property="url" title="网址"/>
         <display:column property="money" title="Money"/>
  </display:table>
  property对应List里对象的属性(用getXXX()方法取得),title则对应表格表头里的列名。
4、 表格的样式定义
共有的表格样式为isis,its,mars,simple,report,mark五种,默认为isis
表格样式设定为mark后可以设定column的样式属性
<display:table name="test" class="isis" >
      <display:column property="id" title="ID"/>
         <display:column property="name" title="姓名"  />
      <display:column property="email" title="电子邮件" class="tableCellError"/>
      <display:column property="url" title="网址"/>
         <display:column property="money" title="Money"/>
  </display:table>
通过class属性来指定所要应用的样式。

5、 数据的自动连接功能
如果显示的数据中包含emal和ur时,可以通过设定display:column里的autolink="true"来直接连接
<display:table name="test" >
      <display:column property="id" title="ID"/>
         <display:column property="name" title="姓名"  />
      <display:column property="email" title="电子邮件" autolink="true" />
      <display:column property="url" title="网址" autolink="true"/>
         <display:column property="money" title="Money"/>
  </display:table>

6、 数据的排序
在需要排序的column里增加sortable="true"属性,headerClass="sortable"是指定显示的样式。
   defaultsort="1"    默认第一个column排序
   defaultorder="descending"    默认递减排序
<display:table name="test" defaultsort="1" defaultorder="descending">
  <display:column property="id" title="ID" sortable="true" headerClass="sortable" />
  <display:column property="name" sortable="true" headerClass="sortable"/>
  <display:column property="email" />
  <display:column property="status" sortable="true" headerClass="sortable"/>
</display:table>

7、 数据的动态连接
实现数据的动态连接有两种方法。第一种为使用标签库的属性值来设置连接地址,这种方法实现的动态连接比较简单,只能实现类似 xxx.jsp?id=1的连接样式。第二种方法为通过自定义一个Wrapper类继承TableDecorator来实现表格中动态连接的数据内容,这样就可以实现类似xxx.jsp?id=1&action=add的连接样式。

第一种动态连接使用方法:在<display:column/>里通过增加href、paramId、paramName、paramScope、paramProperty属性
      href             基本的URL 地址
      paramId          加在URL 地址后的参数名称
      paramName        数据bean的名称,一般为null(即使用当前List里的对象)
      paramScope       数据bean的范围,一般为null
      paramProperty    数据bean的属性名称,用来填充URL 地址后的参数值
<display:table name="test">
      <display:column property="id" title="ID" href="details.jsp" paramId="id" />
      <display:column property="email" title="电子邮件"
href="details.jsp" paramId="action" />
      <display:column property="url" title="网址"
href="details.jsp" paramId="id" paramProperty="email"  />
</display:table>
第一列的连接地址为details.jsp?id=1
第二列的连接地址为details.jsp?action=ss@sfd.com
第三列的连接地址为details.jsp?id=ss@sfd.com

第二种动态连接使用方法:首先编写MyWrapper.java文件,代码如下

    import org.displaytag.decorator.TableDecorator;
import com.module.DateModule;   // DateModule为将来要在tag中进行显示的数据bean。

public class MyWrapper extends TableDecorator{
      
    public MyWrapper ()
    {
        super();
    }
   
    public String getLink2()
    {
        DateModule myModule = (DateModule) getCurrentRowObject();
        int id = DateModule.getId().intValue();

        return "<a href=\"details.jsp?id=" //$NON-NLS-1$
            + id
            + "&amp;action=view\">查看</a> | " //$NON-NLS-1$
            + "<a href=\"details.jsp?id=" //$NON-NLS-1$
            + id
            + "&amp;action=edit\">编辑</a> | " //$NON-NLS-1$
            + "<a href=\"details.jsp?id=" //$NON-NLS-1$
            + id
            + "&amp;action=delete\">删除</a>"; //$NON-NLS-1$
    }
}

   然后编写jsp页面,首先在页面中import一下自己定义的MyWrapper,在<display:table>中增加decorator=” MyWrapper”属性,在数据显示的列种添加
<display:column property="link2" title="Actions" />

三、      备注说明
此文档只列举了一些经常用到的表格显示例子,其他的功能暂没进行详细列举。
关于此标签的分页功能说明: 此标签还有的功能包括实现对list的数据分页,但是由于对海量数据支持的不完善性暂不介绍,在进行分页的时候我们仍然用hibernate的分页方法实现分页,传递数据时只传递当前页的List对象数据。
关于样例程序的说明:在displaytag-examples-1.1.war中的例子基本上包含了所有displaytag所有能做到的效果显示。其中所有例子都是基于JSP XML syntax这种格式的页面文件编写的。当用普通的jsp页面进行测试时应该在文件顶部加入标签库信息<%@ taglib uri="http://displaytag.sf.net" prefix="display" %> 同时应当将标签库要用到的css样式导入到页面中
  <style type="text/css" media="all">
      @import url("css/maven-base.css");
      @import url("css/maven-theme.css");
      @import url("css/site.css");
      @import url("css/screen.css");
  </style>
posted on 2006-12-27 11:37 Joinclass Inc 阅读(5027) 评论(8)  编辑 收藏 引用 所属分类: 技术专题
评论:
  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  路过 Posted @ 2007-04-26 11:10
    好!!!

    实在是好!!!  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  Given_xing Posted @ 2007-07-31 14:41
    看过,表示感谢~~~  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  hh Posted @ 2007-08-07 17:02
    抄来抄去,没意思!!  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  金狐 Posted @ 2008-07-03 13:49
    写的太好了,太详细了,顶一下  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  飞天 Posted @ 2008-07-03 14:27
    什么叫抄来抄去啊,即使是抄的,但总结的很详细,不用在看其他的 了,坚决支持  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  sf Posted @ 2008-10-15 15:58
    顶...............  回复  更多评论   

  • # re: displaytag的使用方法(用于数据表格的显示和功能控制)  keny Posted @ 2009-06-09 16:29
    会有跳页情况?如何解决?如我在第N页进行编辑,编辑后跳到第一页,不想跳到第一页,还要在当前N页面上。  回复  更多评论   

只有注册用户登录后才能发表评论。
 
Copyright © Joinclass Inc Powered by: 博客园 模板提供:沪江博客