- 浏览: 5087219 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
Display标签是个十分优秀的以表格形式显示数据的轻便标签,支持分页、排序及数据导出功能。经过在项目中实践检查,确实不错。
针对大数据量的情况,如数据库里的大量记录,全部从数据库里取出,然后在内存中进行排序,效率不高,内存占用大。为此,标签十分体贴的提供了外部排序分页的功能(External Paging and Sorting)。关于外部排序、分页的概念及具体细节,请参见我的一篇翻译文章《Display标签外部排序与分页(External Paging and Sorting)》,是官方文档的翻译。
官方文档中,没有介绍如何实现外部排序分页的细节,说它很容易实现。我结合我的应用环境(jdk 1.5、Oracle92i、tomcat5.5)试验了一下,果然很容易,实现标签要求的接口----PaginatedList,写一句分页的SQL(使用ROWNUM,大家都知道吧),将数据取出来交给标签来显示就可以了。
为了让朋友更容易,我把代码贴出来。由于这个类与数据库操作类有些藕合,所以这个代码并不能运行,相关函数我进行了适当的注释,仅能用来演示实现思路。
代码显得很多,有些代码是方便jsp页面上参数传递而进行的不是很必要的函数重载。
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2009-02-09
博客:http://blog.csdn.net/wallimn http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
针对大数据量的情况,如数据库里的大量记录,全部从数据库里取出,然后在内存中进行排序,效率不高,内存占用大。为此,标签十分体贴的提供了外部排序分页的功能(External Paging and Sorting)。关于外部排序、分页的概念及具体细节,请参见我的一篇翻译文章《Display标签外部排序与分页(External Paging and Sorting)》,是官方文档的翻译。
官方文档中,没有介绍如何实现外部排序分页的细节,说它很容易实现。我结合我的应用环境(jdk 1.5、Oracle92i、tomcat5.5)试验了一下,果然很容易,实现标签要求的接口----PaginatedList,写一句分页的SQL(使用ROWNUM,大家都知道吧),将数据取出来交给标签来显示就可以了。
为了让朋友更容易,我把代码贴出来。由于这个类与数据库操作类有些藕合,所以这个代码并不能运行,相关函数我进行了适当的注释,仅能用来演示实现思路。
代码显得很多,有些代码是方便jsp页面上参数传递而进行的不是很必要的函数重载。
package com.wallimn.gyz.util; import java.sql.Connection; import java.util.List; import java.util.Map; import org.displaytag.pagination.PaginatedList; import org.displaytag.properties.SortOrderEnum; import com.wallimn.gyz.dao.BaseDao; import com.wallimn.gyz.dao.DbManager; public class OraPaginatedList implements PaginatedList { /** * wrapped list */ private List> pagedList = null; /** * Number of objects per page. */ private int objectsPerPage; /** * Current page (starting from 1) */ private int currentPage; private String selectSql; private int fullSize; private String sortCriterion = null; private SortOrderEnum sortDirection = SortOrderEnum.DESCENDING; public OraPaginatedList(String sql) { selectSql = sql; this.objectsPerPage = 20; this.currentPage = 1; } public OraPaginatedList(String sql, int currentPage) { this.objectsPerPage = 20; this.currentPage = currentPage; selectSql = sql; } /** * 设置当前面,内含null值判断代码,可以简化页面上的操作。 * * 作者:wallimn 时间:2009-1-22 下午12:07:31 * 邮件:wallimn@sohu.com * 博客:http://blog.csdn.net/wallimn * 参数: * @param curPage */ public void setCurrentPage(String curPage){ if(curPage==null || "null".equals(curPage))this.currentPage=1; else this.currentPage = Integer.parseInt(curPage); } public void setObjectsPerPage(int objectsPerPage){ this.objectsPerPage = objectsPerPage; } public void setObjectsPerPage(String objectsPerPage){ if(objectsPerPage==null || "null".equals(objectsPerPage))this.objectsPerPage=20; else this.objectsPerPage = Integer.parseInt(objectsPerPage); } @SuppressWarnings("unchecked") public List getList() { BaseDao dao = new BaseDao(); // int startOffset = objectsPerPage * (currentPage - 1); String fullSql=null; if(this.sortCriterion!=null)fullSql=selectSql+ " order by "+this.sortCriterion+ " " + getSortDirectionStr(); else fullSql =selectSql; //生成分页的SQL,使用ROWNUM String pageSql = dao.getPageSql(fullSql, (currentPage - 1) * objectsPerPage, (currentPage) * objectsPerPage); //System.out.println(pageSql); //使用正则表达式,变换成select count(*)的形式。 String countSql = dao.getCountSql(selectSql); DbManager manager = DbManager.getInstance(); Connection conn = manager.getConnection(); pagedList = dao.dbSearch(conn, pageSql); fullSize = dao.getCount(conn, countSql); manager.closeConnection(conn); return pagedList; } public int getPageNumber() { return currentPage; } public int getObjectsPerPage() { return objectsPerPage; } public int getFullListSize() { return fullSize; } public void setSortCriterion(String fieldN) { this.sortCriterion = (fieldN == null || "null".equals(fieldN)) ? "1" : fieldN; } public String getSortCriterion() { return this.sortCriterion; } public void setSortDirection(String dir) { if (dir == null || "null".equals(dir) || "desc".equalsIgnoreCase(dir)) sortDirection = SortOrderEnum.DESCENDING; else sortDirection = SortOrderEnum.ASCENDING; } public String getSortDirectionStr(){ if(sortDirection == SortOrderEnum.ASCENDING)return "ASC"; else return "DESC"; } public SortOrderEnum getSortDirection() { return sortDirection; } public String getSearchId() { return Integer.toHexString(objectsPerPage * 10000 + currentPage); } }
/***********本人原创,欢迎转载,转载请保留本人信息*************/
作者:wallimn 电邮:wallimn@sohu.com 时间:2009-02-09
博客:http://blog.csdn.net/wallimn http://wallimn.iteye.com
网络硬盘:http://wallimn.ys168.com
/***********文章发表请与本人联系,作者保留所有权利*************/
评论
8 楼
wallimn
2011-01-05
可以用可以不用,跟那个没有多少关系。
7 楼
lingmincc
2011-01-04
你是否有用到属性decorator???
6 楼
wallimn
2011-01-04
我也是直接写的,没有什么特殊的讲究呀。PaginatedList的实例有个getList()方法就可以了呀。
5 楼
lingmincc
2011-01-04
我有个疑问,当我将PaginatedList这个实例传到JSP页面显示,我需要显示的内容是PaginatedList这个实例里的List对象中的属性,如List<App>,我需要显示的是app.appid,app.name这些类型,我发现直接写<display:column property="appid" title="appid"/>是会报找不到属性的???能解释下不,我看网上例子都是直接写属性的
4 楼
wallimn
2010-08-26
如果参数不多,可以不用form,display标签会自动加到链接上,通过链接传递参数,参数多了会丢失。所以参数多了就要用form,在display标签的属性中有个属性,设置了之后,display标签会替你生成相应的js及html代码。
3 楼
wang_godsun
2010-08-26
你的回复还挺快的。看了官方的文档和你的翻译,明白了你用的是第一种实现方式。但我还是没弄的太明白,display生产的页面代码里没有form,查询条件需要我自己建一个form吗,还是display直接传到action里呢了。我用的是truts2.
2 楼
wallimn
2010-08-25
我在SQL里计算了这个值。
String pageSql = dao.getPageSql(fullSql, (currentPage - 1)
* objectsPerPage, (currentPage) * objectsPerPage);
String pageSql = dao.getPageSql(fullSql, (currentPage - 1)
* objectsPerPage, (currentPage) * objectsPerPage);
1 楼
wang_godsun
2010-08-25
你这个例子怎么这么简单,为什么没有官方文档里的(Integer.parseInt(request.getParameter((new ParamEncoder(tableId).encodeParameterName(TableTagParameters.PARAMETER_PAGE)))) - 1) * pageSize 这句呢?
发表评论
-
gradle编译错误:Could not find method compile() for arguments
2020-09-19 10:50 18146编译(IDEA+Gradle)一个别人的工程,出现一个 ... -
netty心跳检查之UDP篇
2019-09-15 08:50 2074部分UDP通信场景中,需要客户端定期发送心跳信息,以获取终 ... -
解决tomcat部署两个SpringBoot应用提示InstanceAlreadyExistsException
2019-06-30 11:49 3128两个SpringBoot应用部署在一个Tomcat中,单独 ... -
Eclipse配置MyBatis代码自动化功能
2019-06-29 10:16 16211.安装插件 Eclipse中,Help->Ecli ... -
vue.js中使用qrcode生成二维码
2019-05-20 00:00 7547一、安装包 npm install qrcodejs2 --s ... -
MySQL插入数据报错: Incorrect string value: '\xFD\xDE'
2019-03-31 23:19 1161我MySQL数据库用的uft-8字符集,插入数据一直很正常 ... -
vue自定义组件并双向绑定属性
2019-03-08 22:46 3189做了两个子组件,原理基本一样,一个是使用原生的select ... -
vue-router简单示例
2019-03-05 00:32 1066写个基本完整、稍有借鉴意义的示例,防止自己忘记。 &l ... -
“联通充值系统繁忙”轻松应对
2019-02-06 11:03 3883大过年的,联通充个值一直报“充值系统繁忙”。昨天晚上试了几 ... -
electron.js数据库应用---导航菜单(element-ui+mysql)
2019-02-05 21:33 2272一、环境搭建 略, ... -
electron.js数据库应用---入门(mysql+element-ui)
2019-01-27 23:19 7265我的机器:Windows10,64 ... -
SpringMVC 在controller层中注入成员变量request,是否线程安全
2018-12-17 21:17 2676@RestController public class ... -
VueJS 组件参数名命名与组件属性转化
2018-12-03 00:00 1987转自:https://www.cnblogs.com/meiy ... -
vue-resource拦截器实现token发送及检验自动化
2018-11-16 22:38 3022用了很长时间vue-resource,最近思考$http发 ... -
element-ui试用手记
2018-10-29 20:25 1668element-ui、iviewui都以vue.js为基础 ... -
iviewui中表格控件中render的使用示例
2018-07-07 16:46 9693示例了如何在表格中显示按钮,如何将代码转化为文字。 i ... -
Tomcat错误“Alias name tomcat does not identify a key entry”解决
2018-07-05 21:39 6141申请到了阿里云的证书后,下载、按照说明生成jks格式证书、 ... -
阿里云免费证书“fileauth.txt内容配置错误”解决
2018-07-05 20:43 5167最近研究微信小程序开发,上阿里云申请了个证书,使用文件验证 ... -
springboot2.0跨域配置
2018-07-04 22:11 5218springboot2.0跨域配置: 一、代码 ... -
微信小程序使用code换openid的方法(JAVA、SpringBoot)
2018-07-01 21:52 10274微信小程序序的代码中提示,使用code换取openid,但 ...
相关推荐
SSHConformity【display标签和taglib标签缺架包】,ssh整合,分页,display标签,pager-taglib标签
display基本用法 常见功能实现 常见问题解决。
NULL 博文链接:https://thinktothings.iteye.com/blog/883407
SSHConformity【display标签和taglib标签】,display标签,pager-taglib标签
display tag 标签 直接导入到myeclipse中就可以学习使用了.
Java Web的应用,教你如何用display标签分页。
大量数据的分页 文档 含源码 大量数据的分页 文档 含源码 大量数据的分页 文档 含源码
NULL 博文链接:https://thinktothings.iteye.com/blog/882797
jsp 中display标签各种用法与配置 基本点 一种很好的页面展示 标签
Android板实现双屏显示,DisplayManager和Display的使用,无须引入其他框架。只需调用原生谷歌类即可
display tag 分页实例,里面lib下有所需的jar包
可在页面显示中文的分页信息,比如上一页,下一页信息等等
display_screen_resolution.zip 屏幕扫描实例代码,一个dome。
displaytable标签.pdf
NULL 博文链接:https://thinktothings.iteye.com/blog/882798
在前端中我们经常需要数据的排序,首先写引入我写好的js $(function($) { $('#sclazzId').val($('#voId').val()); document.getElementsByName('nameup')[0].style.display = none; document.getElementsByName...
linux中安装oracle11g时display设置
说明: 一、含演示数据库建立脚本(较简单) 二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多和很多判断,简单到只需要几行语句: ...table> ...
一个使用display的例子的源代码,没用过的人可以下来看看