- 浏览: 234154 次
- 性别:
- 来自: 广东
文章分类
最新评论
-
wangmuchang:
解压需要密码
CAS单点登录之测试应用 -
ayang722:
首先就要在运行报表birt的IEngineTask中加入, J ...
birt配置动态数据源 -
lihong11:
very good!
js常用方法 -
qtlkw:
你共享出来为什么要密码?要密码为何要共享出来?汗
CAS单点登录之测试应用 -
lishouxinghome:
请问如何获得用户的Id呢,往指点
使用 CAS 在 Tomcat 中实现单点登录
1.封装类代码如下:
2.主要由一个类进行了封装,servlet进行相关参数的设置。Servlet代码如下:
import java.sql.SQLException; import java.util.List; import javax.swing.text.TableView.TableRow; @SuppressWarnings("unchecked") public class PaginationModule { private int NumPerPage = 15; //每页显示的记录条数 private int currentPage = 0; //当前显示页面 private int totalNums = 0; //共有多少条数据 private int totalPages = 0; //可以分成多少个页面 private int cfPage = 0; //要显示页面的第一条数据 private int clPage = 0; //要显示页面的最后一条数据 private int firstOfPage = 0; //显示第一页面 private int prevOfPage = 0; //显示最后一页面 private int lastOfPage = 0; //显示前一页面 private int nextOfPage = 0; //显示下一页面 private String keyword = null; //关键字查询 private String tabelName = ""; //访问数据库中的一个表或子查询 private String condition = ""; //条件查询 private String orderby = ""; //按某字段排序返回结果 private boolean desc = false; //是否按逆序进行排序 private String url = ""; //页面的请求路径 private boolean flag = false; //是否在数据前面显示4个按钮 private List list = null; //数据存储于list中 private TableRowIterator tr = null; //返回一个TableRowIterator private Context context = null; public PaginationModule(Context context) { this.context = context; } public void setNumPerPage(int numPerPage) { NumPerPage = numPerPage; } public void setTabelName(String tabelName) throws SQLException { this.tabelName = tabelName; if(!"".equals(this.tabelName)){ this.initTotalNum(); } } public void setTabelName(String tabelName, String condition)throws SQLException { this.tabelName = tabelName; //condition = condition.trim().replaceAll("'", ""); String temp = condition; String tp = ""; int ii = temp.indexOf("%"); if(ii != -1) { do { int i = temp.indexOf("%"); String sub1 = temp.substring(0, i+1); String sub2 = temp.substring(i+1, temp.length()); int j = sub2.indexOf("%"); tp += sub1; if(j != 0) { String ktemp = sub2.substring(0, j).trim().replaceAll("'", ""); tp += ktemp; } tp += "%"; temp = sub2.substring(j+1, sub2.length()); } while(temp.indexOf("%") > 0); } temp = tp + temp; this.condition = temp; if(!"".equals(this.condition)){ this.initTotalNum(this.condition); } else if(!"".equals(this.tabelName)){ this.initTotalNum(); } } public void setCurrentPage(int currentPage) throws SQLException { if(currentPage >= this.totalPages) { currentPage = this.totalPages - 1; } if(currentPage < 0) { currentPage = 0; } this.cfPage = currentPage*NumPerPage+1; this.clPage = currentPage*NumPerPage+NumPerPage > totalNums ? totalNums:currentPage*NumPerPage+NumPerPage; this.firstOfPage = currentPage == 0 ? -1 : 0; this.prevOfPage = currentPage == 0 ? -1 : currentPage-1; this.lastOfPage = totalPages == 1 ? -1 : totalPages-1; this.nextOfPage = totalPages > 1 ? currentPage + 1 : -1; this.currentPage = currentPage; if(!"".equals(this.condition)){ this.initdata(this.condition); } else if(!"".equals(this.tabelName)){ this.initdata(); } } public void setUrl(String url) { this.url = url; } public PaginationModule() { } public PaginationModule(int numPerPage, int currentPage, String table, String url, Context context) { this.NumPerPage = numPerPage; this.tabelName = table; } //推荐使用此构造方法 public PaginationModule(int numPerPage, int currentPage, int totalNums, List list, String url, Context context) { this.NumPerPage = numPerPage; this.currentPage = currentPage; this.totalNums = totalNums; this.list = list; this.totalPages = (totalNums+NumPerPage-1)/NumPerPage; this.cfPage = currentPage*NumPerPage+1; this.clPage = currentPage*NumPerPage+NumPerPage > totalNums ? totalNums:currentPage*NumPerPage+NumPerPage; this.firstOfPage = currentPage == 0 ? -1 : 0; this.prevOfPage = currentPage == 0 ? -1 : currentPage-1; this.lastOfPage = totalPages == 1 ? -1 : totalPages-1; this.nextOfPage = totalPages > 1 ? currentPage + 1 : -1; this.url = url; this.context = context; } public int getNumPerPage() { return NumPerPage; } public int getCurrentPage() { return currentPage; } public void initdata() throws SQLException{ Object[] parameters = new Integer[2]; parameters[0] = this.cfPage; parameters[1] = this.clPage; String sql = "select rn, ne.* from (select rownum rn,n.* from(select * from "; if(this.desc) { sql = sql + this.tabelName + " order by " + this.orderby +" desc ) n) ne where rn between ? and ?"; } else if(!"".equals(this.orderby)) { sql = sql + this.tabelName + " order by " + this.orderby +" ) n) ne where rn between ? and ?"; } else { sql = sql + this.tabelName + " ) n) ne where rn between ? and ?"; } this.tr = DatabaseManager.query(context, sql, parameters); } public void initdata(String condition) throws SQLException{ Object[] parameters = new Integer[2]; parameters[0] = this.cfPage; parameters[1] = this.clPage; String sql = "select rn, ne.* from (select rownum rn,n.* from(select * from "; if(this.desc) { sql = sql + this.tabelName + " where " + condition + " order by " + this.orderby + " desc ) n) ne where rn between ? and ?"; } else if(!"".equals(this.orderby)) { sql = sql + this.tabelName + " where " + condition + " order by " + this.orderby + " ) n) ne where rn between ? and ?"; } else { sql = sql + this.tabelName + " where " + condition + ") n) ne where rn between ? and ?"; } this.tr = DatabaseManager.query(context, sql, parameters); } public void initTotalNum() throws SQLException{ String sql = "select count(*) num from " + this.tabelName; TableRowIterator tr = DatabaseManager.query(context, sql); if(tr.hasNext()) { this.totalNums = tr.next().getIntColumn("num"); } this.totalPages = (totalNums+NumPerPage-1)/NumPerPage; } public void initTotalNum(String condition) throws SQLException{ String sql = "select count(*) num from " + this.tabelName + " where " + condition; TableRowIterator tr = DatabaseManager.query(context, sql); if(tr.hasNext()) { this.totalNums = tr.next().getIntColumn("num"); } this.totalPages = (totalNums+NumPerPage-1)/NumPerPage; } public TableRowIterator executeSql(Context context, String sql ) throws SQLException{ return DatabaseManager.query(context, sql); } public int getCfPage() { return cfPage; } public void setCfPage(int cfPage) { this.cfPage = cfPage; } public int getClPage() { return clPage; } public void setClPage(int clPage) { this.clPage = clPage; } public int getTotalNums() { return totalNums; } public void setTotalNums(int totalNums) { this.totalNums = totalNums; this.totalPages = (totalNums+NumPerPage-1)/NumPerPage; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public List getList() { return list; } public void setList(List list) { this.list = list; } public int getFirstOfPage() { return firstOfPage; } public void setFirstOfPage(int firstOfPage) { this.firstOfPage = firstOfPage; } public int getPrevOfPage() { return prevOfPage; } public void setPrevOfPage(int prevOfPage) { this.prevOfPage = prevOfPage; } public int getLastOfPage() { return lastOfPage; } public void setLastOfPage(int lastOfPage) { this.lastOfPage = lastOfPage; } public int getNextOfPage() { return nextOfPage; } public void setNextOfPage(int nextOfPage) { this.nextOfPage = nextOfPage; } public String getUrl() { return url; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } public TableRowIterator getTr() { return tr; } public void setCondition(String condition) { this.condition = condition; } public void setContext(Context context) { this.context = context; } public void setOrderby(String orderby, boolean desc) { this.orderby = orderby; this.desc = desc; } public String getKeyword() { return keyword; } public void setKeyword(String keyword) { keyword = keyword.trim().replaceAll("'", ""); this.keyword = keyword; } }
2.主要由一个类进行了封装,servlet进行相关参数的设置。Servlet代码如下:
PaginationModule pagm = new PaginationModule(c); int currentPage = 0; if (request.getParameter("curp") != null) { currentPage = Integer.parseInt(request.getParameter("curp")); } pagm.setOrderby("created_date", true); String keyword = request.getParameter("conditionvalue") == null ? "":request.getParameter("conditionvalue"); pagm.setTabelName("news", "title like '%" + keyword + "%' "); pagm.setKeyword(keyword); try { if (request.getParameter("jump_page") != null) { currentPage = Integer.parseInt(request.getParameter("jump_page")) - 1; } } catch (NumberFormatException e) { currentPage = 0; } pagm.setCurrentPage(currentPage); TableRowIterator tr = pagm.getTr(); if(tr != null) { List<News> newslist = new ArrayList<News>(); while(tr.hasNext()) { TableRow trw = tr.next(); if(trw != null) { newslist.add( new News(trw)); } } pagm.setList(newslist); } pagm.setUrl("news-edit?conditionvalue=" + java.net.URLEncoder.encode(keyword, Constants.DEFAULT_ENCODING) + "&"); request.setAttribute("paginationModule", pagm);3.jsp页面显示:
<% PaginationModule pmodule = (PaginationModule)request.getAttribute("paginationModule"); List<News> newslist = pmodule.getList(); String keyword = pmodule.getKeyword(); %> <% if (pmodule.getFirstOfPage() > -1) { %> <a href="<%=request.getContextPath() %>/<%=pmodule.getUrl() %>curp=0" ><img border="0" src="<%= request.getContextPath() %>/images/btn_prev2-1.gif" width="12" height="9" alt=""/></a> <% } else { %> <img border="0" src="<%= request.getContextPath() %>/images/btn_prev2.gif" width="12" height="9" alt=""/> <% } %> <% if (pmodule.getCurrentPage() > 0) { %> <a href="<%=request.getContextPath() %>/<%=pmodule.getUrl() %>curp=<%=pmodule.getPrevOfPage() %>" ><img border="0" src="<%= request.getContextPath() %>/images/btn_prev-1.gif" width="5" height="9" alt=""/></a> <% } else { %> <img border="0" src="<%= request.getContextPath() %>/images/btn_prev.gif" width="5" height="9" alt=""/> <% } %> <fmt:message key="jsp.general.showresults"> <fmt:param value="<%= Integer.toString(pmodule.getCfPage()) %>"/> <fmt:param value="<%= Integer.toString(pmodule.getClPage()) %>"/> <fmt:param value="<%= Integer.toString(pmodule.getTotalNums()) %>"/> <fmt:param value="<%= Integer.toString(pmodule.getCurrentPage()+1) %>" /> <fmt:param value="<%= Integer.toString(pmodule.getTotalPages()) %>" /> </fmt:message> <% if (pmodule.getNextOfPage()>-1 && pmodule.getCurrentPage() < pmodule.getTotalPages() -1) { %> <a href="<%=request.getContextPath() %>/<%=pmodule.getUrl() %>curp=<%=pmodule.getNextOfPage() %>" ><img border="0" src="<%= request.getContextPath() %>/images/btn_next-1.gif" width="5" height="9" alt=""/></a> <% } else { %> <img border="0" src="<%= request.getContextPath() %>/images/btn_next.gif" width="5" height="9" alt=""/> <% } %> <%-- Last Page --%> <% if (pmodule.getLastOfPage()>-1 && pmodule.getCurrentPage() < pmodule.getTotalPages() -1) { %> <a href="<%=request.getContextPath() %>/<%=pmodule.getUrl() %>curp=<%=pmodule.getLastOfPage() %>" ><img border="0" src="<%= request.getContextPath() %>/images/btn_next2-1.gif" width="12" height="9" alt=""/></a> <% } else { %> <img border="0" src="<%= request.getContextPath() %>/images/btn_next2.gif" width="12" height="9" alt=""/> <% } %> </td><td align="right"> <input id="jump_page" name="jump_page" onkeypress="javascript:return disableEnterKey(event);" class="bd" size="3" maxlength="45" value=""/> <input type="submit" class="btn" name="submit_search" value="<fmt:message key="jsp.page.goto"/>"/> </td></tr> </table></td></tr> </tbody> </table> </div> </form> </div> <% }
- 分页组件.rar (2.8 KB)
- 下载次数: 8
发表评论
-
ssh框架加入atomikos分布式事务管理
2015-01-06 18:48 1478一、概念 分布式事务分布式事务是指事务 ... -
Spring 动态切换数据源
2014-05-09 14:30 3646一、开篇 这里整合分别采用了Hibernate和MyB ... -
Spring切入点表达式常用写法
2014-05-09 14:25 824自从使用AspectJ风格切面配置,使得Spring的切面配 ... -
Spring中线程池的应用
2014-03-24 11:03 904多线程并发处理起来通常比较麻烦,如果你使用spring容器来 ... -
Spring线程池开发实战
2014-03-24 11:02 761本文提供了三个Spring多线程开发的例子,由浅入深,由于例 ... -
JSch - Java实现的SFTP(文件上传详解篇)
2013-11-21 09:36 907JSch是Java Secure Channel的缩写。J ... -
JAVA线程池ThreadPoolExecutor
2013-07-17 14:45 904java.util.concurrent.ThreadPoo ... -
log4j.properties 使用说明
2013-05-29 10:54 814一、Log4j简介Log4j有三个主要的组件:Logger ... -
eclipse安装反编译插件(附jad下载)
2012-12-12 10:45 834一、eclipse反编译插件Jadclipse jadclip ... -
web.xml 配置404和500错误的自定义页面
2012-12-07 11:47 820web.xml <error-page>< ... -
java内存溢出
2012-06-28 18:57 879一、常见的Java内存溢出 ... -
List Set Map区别
2012-12-25 17:54 923List有序key和value都能重 ... -
Java 自定义Annotation(元数据、注解)
2011-08-05 11:50 1928Annotation在java的世界正铺天盖地展开,有空写这一 ... -
LOG4J properties 配置文件
2011-06-29 16:31 1179一、参数意义说明1、输出级别的种类 ERROR、 ... -
servlet输出一个文件
2010-11-10 18:33 1172String fileName= file.getName() ... -
关于RSS、RDF、ATOM和Feed
2010-11-02 09:48 1231RSS被不同的技术团体做不同的解释,分别有 Rich Site ... -
正确理解Traceback的含义
2010-11-02 09:44 1020Traceback是Blog的一个重要 ... -
关于Serializable的serialVersionUID
2010-10-26 09:10 1765众所周知,当某class实现了Serializable接口 ... -
获得CLASSPATH之外路径的方法
2010-10-14 10:37 966URL base = this.getClass().getR ... -
操作properties文件
2010-10-14 10:30 812发个例子大家自己看哈.package control; im ...
相关推荐
**JSF分页组件2详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建Web应用程序的MVC(Model-View-Controller)框架。在处理大量数据时,分页功能是必不可少的,它能够帮助用户更有效地浏览和管理信息。在...
Bootstrap 分页组件的设计 Bootstrap 分页组件的设计是基于 Bootstrap 前端开发框架,简单设计了前端分页控件。该组件提供了一个基本的分页控件,能够满足大多数情况下的分页需求。 分页组件的结构 分页组件的...
ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件ibatis_likehbm高效分页组件 ibatis_likehbm高效分页组件 ibatis_likehbm...
- 自定义样式:通过组件的自定义样式能力,开发者可以根据品牌风格调整分页组件的颜色、大小等外观属性。 - 动画效果:添加过渡动画,如滑动切换页码时的平滑效果,可以提升用户体验。 - 分页模式:支持多种分页...
Flex分页组件是一种在Flex...开发者可以研究这些文件来理解组件的工作原理,学习如何在自己的项目中集成和定制该分页组件。同时,为了确保组件能正常工作,还需要进行充分的测试,确保在不同场景下的稳定性和功能性。
标题中的“比较好用的分页组件”通常指的是在软件开发中用于处理大量数据分页显示的工具或库。在Web应用开发中,由于一次性加载所有数据可能会导致性能问题,因此分页组件是必不可少的。这类组件能帮助开发者高效地...
通过阅读和理解这篇文章,你将能够更好地理解分页组件的实现原理,并将其应用到自己的项目中。 总结起来,QT5分页组件是通过自定义控件、信号与槽机制以及与数据模型的交互来实现的。它简化了大量数据的显示,并...
很好用的 分页组件 分页 java 代码
**jQuery实现分页组件** 在Web开发中,分页是一种常见的功能,用于处理大量数据时,将内容分段展示,提高用户体验。jQuery是一款强大的JavaScript库,它简化了DOM操作、事件处理、动画制作等任务,同时也方便我们...
基于Bootstrap样式的分页组件
通过查看这些文件,我们可以深入理解分页组件的实现细节,并且可以根据自己的需求进行定制。 总结来说,理解并实现一个分页组件涉及到了前端和后端的知识,包括但不限于HTML、CSS、JavaScript、数据处理、API交互...
"Avuepaginationcomponent" 提供了一个针对Vue.js的分页组件,这使得在Vue项目中实现分页变得更加简单。 首先,我们来深入了解Vue分页组件的基本概念。在Vue.js中,组件是可复用的代码块,它们可以独立地承担特定的...
在React开发中,分页是常见的功能之一,用于在大量数据中进行导航。"react-一款简单的react组件实现的分页"是一个实例,它展示...通过理解React的基本概念和实践,你可以根据自己的需求定制出满足各种场景的分页组件。
标题提到的是“一个不错的分页组件”,描述中指出该组件简单易用,能有效节省开发时间,这表明我们即将探讨的是一款高效、便捷的分页解决方案。 分页组件通常包含以下几个核心功能: 1. **显示页码**:分页组件会...
Java分页组件是Java开发中常见的一种工具,用于在处理大量数据时,将结果集分割成多页显示,以提高用户界面的响应速度和用户体验。Oracle数据库是企业级常用的数据库系统,它支持复杂的SQL查询和大数据量的处理。在...
QT自定义分页组件是软件开发中常见的设计模式,特别是在GUI应用中,用于展示大量数据时,分页能有效提高用户体验。在这个项目中,我们有`qt自定义分页组件源代码`,它包含了实现这一功能的核心源码和测试代码。下面...
在这个"基于vue+element的分页组件"中,开发者利用Vue.js和Element UI的强大力量,创建了一个用于后台项目分页展示的组件。 首先,Vue.js的核心在于其响应式数据绑定和组件化系统。在分页组件中,Vue.js的`data`...
用户可以很轻松地将分页组件嵌入到他们的网页中,从而实现内容的分页显示。 在组件的HTML结构中,定义了一个UL元素,并为其分配了一个id为“pageDIV”的属性。这个id用于在JavaScript中定位这个容器,以便在其中...
**标题:“jsp分页组件(原创)”,描述与标签** 在IT行业中,分页是网页应用中的常见功能,尤其在处理大数据集时,它能够帮助用户有效地浏览和管理信息。这个“jsp分页组件”是一个原创的解决方案,专门用于Java ...