|
锁定老贴子 主题:displayTag 完全学习笔记
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-04-23 关键字: displayTag
1 基于DisplayTag的分页方案Display Tag Lib是一个标签库,用来处理jsp网页上的Table,功能非常强,可以对的Table进行分页、数据导出、分组、对列排序等等。具体的说明请参考Display Tag的官方网站http://displaytag.sourceforge.net。 DisplayTag为一个开源的标签库,使用DisplayTag必须从网站下载DisplayTag的jar包,并将jar引用到用户所用的工程中。 同时,DisplayTag.jar依赖Apache项目的支持,所以在使用同时,必须下载Apache相关的jar包。 DisplayTag使用了两个标签,displaytag-1.1.tld和fmt.tld。使用了servlet2.4以前的版本,需要在web.xml中配置。 <taglib> <taglib-uri>http://displaytag.sourceforge.net/</taglib-uri> <taglib-location>/WEB-INF/displaytag-11.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/fmt</taglib-uri> <taglib-location>/WEB-INF/fmt.tld</taglib-location> </taglib> 两个标签中,displaytag-1.1.tld是DisplayTag的官方标签,另外fmt.tld的标签作用是为了显示中文而设定的。 DisplayTag能够在request和session范围内获得相关的List。所有的数据必须从List中获得。 1.单表查询结果集 List userList=getHibernateTemplate().find(“from user”); Request.setAttribute(“userList”, userList); 2.多表查询结果集 List userCustomerList=getHibernateTemplate().find(“select new MyObject(user.Name,user.No…..) from user,customer”); Request.setAttribute(“userCustomerList”,” userCustomerList”); 要先定义好MyObject这个class,并且有new MyObject(….)构造函数 3.以上两种方法每次在翻页时,都是对所有查询结果进行一次查询,如果想实现每次只查询10条数据,则需要自己构造sql执行。DisplayTag提供了一些变量. String strPage = request.getParameter("page"); String strDir = request.getParameter("dir"); String strSort = request.getParameter("sort"); Action从request里面获得这三个参数,都是DisplayTag自动生成的,用户无需管理这三个参数。 DisplayTag页面基本组成 1. 要引入标签 <%@ taglib uri="/WEB-INF/fmt.tld" prefix="fmt" %> <%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %> 2. 在页面上使用displayTag标签 1) 最简单的情况 <display:table name="test" /> 标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。 2) 使用<display:column/>标签的情况 <display:table name="test"> <display:column property="id" title="ID" /> <display:column property="name" /> <display:column property="email" /> <display:column property="status" /> <display:column property="description" title="Comments"/> </display:table> property对应List里对象的属性(用getXXX()方法取得),title则对应表格表头里的列名。定义列有两种方式: A、<display:column property="email" /> 使用<display:column/>标签里的property属性来定义 B、<display:column title="email">email@it.com</display:column> 在<display:column/>标签体里增加内容,可以是常量,也可以用其他标签等等 两种方式比较,用property属性来定义更加快速和利于排序 3) 表格显示样式的定义 A、 在<display:table/>和<display:column/>标签里指定标准的html属性 <display:table name="test" style=”……”> <display:column property="id" title="ID" style=”……”/> </display> B、修改样式表 <display:table name="test" class="mars"> <display:column property="id" title="ID" class="idcol"/> <display:column property="name" /> <display:column property="email" /> <display:column property="status" class="tableCellError" /> <display:column property="description" title="Comments"/> </display:table> 通过class属性来指定所要应用的样式(自己定义的样式)。也还可以在其默认样式表里(./css/screen.css)直接修改 4) 标签取得数据的数据源 有四种范围 pageScope requestScope (默认) <display:table name="test2" > sessionScope <display:table name="sessionScope.holder.list" > 注意,这里要指定范围,非默认 applicationScope 5) 通过增加id属性创建隐含的对象 <display:table id="row" name="mylist"> <display:column title="row number" > <c:out value="${row_rowNum}"/> </display:column> <display:column title="name" > <a href=”#” onclick=”view(‘${row.id}’)”>${row.first_name}-${row.last_name}</a> </display:column> </display:table> 注意到在<display:table/>里增加了id属性,这时就在page context里创建了一个隐含对象,指向List里的当前对象; 同时还创建了一个id_rowNum对象,它仅仅代表当前行的行数。 6) 显示部分数据 显示开始五条数据:通过设定length属性 <display:table name="test" length="5"> <display:column property="id" title="ID" /> <display:column property="email" /> <display:column property="status" /> </display:table> 显示第三到第八条数据:通过设定offset和length属性 <display:table name="test" offset="3" length="5"> <display:column property="id" 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-04-23
如果显示几条记录,就到数据库查询几条记录,displaytab的处理方案是怎么样的?
|
|
| 返回顶楼 | |
|
时间:2007-04-23
方便是方便但是效率不怎么样, 用这来开发项目,基本不可取, 做一些后台项目快速开发可以考虑一下
|
|
| 返回顶楼 | |
|
时间:2007-04-24
这个自定义tag还可以啦。
我在项目里也用到了。 非常方便 如果显现小量的数据是非常好用。 如果大量的话,还是自己写分页类吧。 |
|
| 返回顶楼 | |
|
时间:2007-05-04
项目中用到,不错!
|
|
| 返回顶楼 | |
|
时间:2007-05-05
挺方便,考虑到性能的需要,最好还是自己写一个,还是习惯用自己写的,呵呵
|
|
| 返回顶楼 | |
|
时间:2007-05-05
1.1的版本提供了对大数据量分页的支持,虽然有点麻烦,但是总体还是可取的,起码程序员容易上手,开发速度也快
|
|
| 返回顶楼 | |
|
时间:2007-06-18
devilbaby 写道 1.1的版本提供了对大数据量分页的支持,虽然有点麻烦,但是总体还是可取的,起码程序员容易上手,开发速度也快 我刚用Displaytag 查询、翻页、排序都正常,就是没有显示任何样式。没有颜色,没有表格线,请问如何解决?
|
|
| 返回顶楼 | |
|
时间:2007-06-19
eXtremTable功能更加强大一些。
|
|
| 返回顶楼 | |
|
时间:2007-06-19
ecside,国产的,而且还是在javaeye成长起来的,
http://ecside.group.javaeye.com/ |
|
| 返回顶楼 | |
浏览 4177 次










