- 浏览: 157165 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
18335864773:
推荐用户国内自主研发的组件 pageoffice 组件生成 e ...
java 导出Excel poi 实现 -
nijinglie:
这个jsp页面具体怎么写????
java 导出Excel poi 实现 -
fxwjsw:
Array.prototype.distinct = func ...
js数组去除重复项目 -
ae6623:
讲的很好!!赞一个,嗯是图片向上滚动了-100px;这就好理解 ...
css背景定位技术 -
qieyi28:
呵呵
javascript &的秒用
第二次修改了分页代码,解决了一些小bug,此代码还在测试中,欢迎指出问题。。。
如果你不是使用AJAX分页,请将jsp页面中超链接的js替换成action请求地址即可。
这是ajaxPageInfo.java
这是pageinfo.jsp
如果你不是使用AJAX分页,请将jsp页面中超链接的js替换成action请求地址即可。
这是ajaxPageInfo.java
package com.dwh.common.sys; import org.apache.struts2.ServletActionContext; /* * 分页查找类 * * 说明,如果要应用于ajax,在数据访问层应该用上如下参数 * * //分页需要的一些参数 String requestURI="queryPurchaseMuti";//应用请求地址 String queryString="";//参数 Iterator iter = m.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); if(!entry.getKey().equals("cur_arg")){ Object key = entry.getKey(); Object val = entry.getValue(); queryString+="&"+key+"="+val; } } purchase.setPageUrl(requestURI, queryString); purchase.setPageSize(2);//设置每页显示的数量为2 purchase.setSumRows(8);//查出当前项目为8页 * * */ public class AjaxPageInfo { /**当前页数*/ private int currentPage; /**每页显示数量 */ private int pageSize =10; /**总共有多少页*/ private int sumPages; /**总记录数*/ private int sumRows; /**点击下一页的应用地址*/ private String pageUrl; /**当前开始记录数*/ private int startRow; /**当前结束记录数*/ private int endRow; /**前台从第几页开始显示**/ private int beginPage; /**前台到第几页结束显示**/ private int endPage; /**前台一次展现几个Page链接**/ private int pageNumber=10;//前台一次展现10个页面链接 /** * 得到当前页码 * @return */ public int getCurrentPage() { return currentPage; } /** * 设置当前页码 * @param currentPage */ public void setCurrentPage(String curPage) { if(curPage==null||curPage.equals("")){//没有指定当前页的情况下,默认为0,适应第一页 this.currentPage=0; }else{ currentPage=Integer.parseInt(curPage); } this.currentPage = currentPage < 1 ? 0 : currentPage;//当前页通过浏览器参数传过来 this.startRow=currentPage*pageSize; //设置起始记录数,0开始为第一页的内容 this.endRow=startRow+pageSize; setPageUrl(); //启动获取页数 } /** * 得到每页行数 * @return */ public int getPageSize() { return pageSize; } /** * 设置每页行数 * @param rowsPage */ public void setPageSize(int pageSize) { this.pageSize = pageSize; } /** * 得到总页数 * @return */ public int getSumPages() { return sumPages; } /** * 设置总页数 * @param sumPages */ public void setSumPages(int sumPages) { this.sumPages = sumPages; } /** * 得到总行数 * @return */ public int getSumRows() { return sumRows; } /** * 设置总行数 * @param sumRows */ public void setSumRows(int sumRows) { this.sumRows = sumRows; if(sumRows%pageSize==0){//刚好整除 this.sumPages=sumRows/pageSize;//算出总页数 } if(sumRows%pageSize>0){//余数为正 this.sumPages=sumRows/pageSize+1; } if(sumRows%pageSize<0){//余数为负 this.sumPages=sumRows/pageSize; } } public void setSumRows(int sumRows,int begin,int end) {//设置页面展现链接规则 this.sumRows = sumRows; if(sumRows%pageSize==0){//刚好整除 this.sumPages=sumRows/pageSize;//算出总页数 } if(sumRows%pageSize>0){//余数为正 this.sumPages=sumRows/pageSize+1;//(sumRows/pageSize)+1页 } if(sumRows%pageSize<0){//余数为负 this.sumPages=sumRows/pageSize; } this.beginPage=begin; this.endPage=end; if(sumPages<pageNumber){//总页数比指定页数还小的时候 this.pageNumber=sumPages; } //求得链接集开始页码和结束页码 if(pageNumber<sumPages){ if(currentPage>0){ this.beginPage=(currentPage/pageNumber)*pageNumber;//去除余数的整数*pageNumber this.endPage=beginPage+pageNumber; }else{ this.beginPage=1; this.endPage=pageNumber; } }else{ this.beginPage=1; this.endPage=pageNumber; } //点击当前分页末端链接 if((currentPage+1)%pageNumber==0){ if(sumPages>pageNumber){//只有当总页数大于每页显示链接数时开始链接才累加 this.beginPage=currentPage+1; }else{ this.beginPage=begin; } if(sumPages-currentPage>pageNumber){//当前页不是第一个链接集合页 this.endPage=currentPage+11; }else{ this.endPage=sumPages; } } //点击当前分页最前端链接 if(beginPage==currentPage+1&¤tPage!=0&&(currentPage+1)%pageNumber==0){ if(currentPage+1==begin){ if(currentPage+1!=pageNumber){//如果不为第二个链接页 this.beginPage=(currentPage+1)-pageNumber; }else{ this.beginPage=(currentPage+2)-pageNumber; //如果要跳到第一页去 } this.endPage=currentPage+1; } } if(currentPage == sumPages-1){//如果是尾页,算出页面链接的开始和结束 if(sumPages==1){ this.beginPage = 1; this.endPage =1; }else{ if(sumPages>pageNumber){ this.beginPage = sumPages - (sumPages % pageSize);//得到,总数减余数 } this.endPage = sumPages; } } // System.out.println("开始页:"+beginPage); // System.out.println("结束页:"+endPage); } /** * 设置应用地址 * @return 拼接的应用地址加参数 */ public String getPageUrl() { return pageUrl; } public void setPageUrl() { String pageURl = ServletActionContext.getRequest().getRequestURI()+"?a=a"; pageURl +="&"+ServletActionContext.getRequest().getQueryString(); pageURl=pageURl.replaceAll("&curPage="+currentPage,"");//去除页面重复参数 if(pageURl.contains("a=a&")){ //去除页面重复参数 pageURl=pageURl.replaceAll("a=a&", ""); }else{ pageURl=pageURl.replaceAll("a=a", ""); } this.pageUrl = pageURl; } /**setPageUrl()的重载 * @param requestURI js截取的uri * @param queryString js截取的参数 * */ public void setPageUrl(String requestURI,String queryString) { String pageURl = requestURI+"?a=a"; pageURl +="&"+queryString; pageURl=pageURl.replaceAll("&curPage="+currentPage,"");//去除页面重复参数 if(pageURl.contains("a=a&")){ //去除页面重复参数 pageURl=pageURl.replaceAll("a=a&", ""); }else{ pageURl=pageURl.replaceAll("a=a", ""); } this.pageUrl = pageURl; } public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public int getEndRow() { return endRow; } public void setEndRow(int endRow) { this.endRow = endRow; } public int getBeginPage() { return beginPage; } public int getPageNumber() { return pageNumber; } public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; } public void setBeginPage(int beginPage) { if(currentPage==0){//第一次运行分页代码 this.beginPage=1; } this.beginPage = beginPage; } public int getEndPage() { return endPage; } public void setEndPage(int endPage) { if(currentPage==0){//第一次运行分页代码 this.endPage=pageNumber; } this.endPage = endPage; } }
这是pageinfo.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isELIgnored="false"%> <%@ taglib prefix="s" uri="/struts-tags"%> <head> <style type="text/css"> DIV.scott A.actives { BORDER-RIGHT: #85bd1e 1px solid; BORDER-TOP: #85bd1e 1px solid; BORDER-LEFT: #85bd1e 1px solid; COLOR: #638425; BORDER-BOTTOM: #85bd1e 1px solid; BACKGROUND-COLOR: #f1ffd6; text-decoration:none; } </style> </head> <link href="${pageContext.request.contextPath}/lib/common/css/pageInfo.css" type="text/css" rel="stylesheet"> <div class="scott" id="showPage" style="height: 28px;"> <s:if test="currentPage>0"> <a href="javascript:ajaxQuery('${pageUrl}¤tPage=0');">首页</a>| <a href="javascript:ajaxQuery('${pageUrl}¤tPage=${currentPage-1}');">上一页</a>| </s:if> <s:else>首页| 上一页|</s:else> <!-- 中间分第几页显示 --> <s:bean name="org.apache.struts2.util.Counter" id="counter"> <s:param name="first" value="beginPage" /> <s:param name="last" value="endPage" /> <s:iterator> <s:if test="currentPage+1==current-1"> <a class="actives" href="javascript:ajaxQuery('${pageUrl}¤tPage=${current-2}');"><s:property /></a> </s:if> <s:else> <a href="javascript:ajaxQuery('${pageUrl}¤tPage=${current-2}');"><s:property /></a> </s:else> </s:iterator> </s:bean> <!-- 中间分页结束 --> <s:if test='currentPage+1 < sumPages'> <a href="javascript:ajaxQuery('${pageUrl}¤tPage=${currentPage+1}');">下一页</a>| <a href="javascript:ajaxQuery('${pageUrl}¤tPage=${sumPages-1}');">尾页 </a> </s:if> <s:else>下一页| 尾页 </s:else> 共${sumPages}页/共${sumRows}条 第 <input id="load" type="text" size="3" value="" onkeyup="loadUrl(this.value)"> 页 <a href="javascript:;" onclick="loadUrl2(document.getElementById('load').value);">确定</a> </div> <script type="text/javascript"> //ajax 要加载的请求 function ajaxQuery(url){ url+="&beginPage="+${beginPage}+"&endPage="+${endPage}; $.ajax({ url:url, type:"get", cache:false, success:function(data){//对应ajax处理 var selectFetchType=$('#fetchType').find("option:selected").text(); $('#content').html(data);//向指定显示内容位置写入jsp文件 $('#queryName').html(selectFetchType); $('#queryName').width(100); } }); } function loadUrl(str) { //首先判断是否为数字,不为数字提示,输入不可非数字 if (window.event) {//判断事件 var keyCode = window.event.keyCode; if (keyCode == 13 && str != false) {//回车事件 //首先判断是否为数字,不为数字提示,输入不可非数字 var str = isNumber(str); if (str == false) { alert("页数不可以为负数或非数字"); return false; } var sumPages = '${sumPages}'; str = parseInt(str); if (str > sumPages || str < 1) { alert("没有这个页数 "); return false; }//oracle数据库,不用在这里str加1 str = str - 1;//如果是ORACLE数据库,这里不用减1,下标是从1开始的 ajaxQuery('${pageUrl}¤tPage='+str); } } } function loadUrl2(str) { //首先判断是否为数字,不为数字提示,输入不可非数字 var str = isNumber(str); if (str == false) { alert("页数不可以为负数或非数字"); return false; } var sumPages = '${sumPages}'; str = parseInt(str); if (str > sumPages || str < 1) { alert("没有这个页数 "); return false; }//oracle数据库,不用在这里str加1 str = str-1; ajaxQuery('${pageUrl}¤tPage='+str); } /*调整样式 */ var currentPage = '${currentPage}'; function showCurrent() { var page = document.getElementById("showPage"); if (currentPage != "") { var cssPage = page.getElementsByTagName("span"); if (currentPage < cssPage.length) { cssPage[currentPage].className = "current"; } } } showCurrent(); /*判断是否为数字*/ function isNumber(str) { var Letters = "1234567890."; for ( var i = 0; i < str.length; i = i + 1) { var CheckChar = str.charAt(i); if (Letters.indexOf(CheckChar) == -1) { return false; } } return str; } </script>
发表评论
-
Eclipse常用快捷键 10个最有用的快捷键
2017-10-12 16:46 548Eclipse中10个最有用的快捷键组合 一个E ... -
redis boundValueOps 方法操作解释
2017-06-21 17:17 25401.我的项目是maven项目,最近因为要用到,先引进下面两 ... -
centos 配置java JDK
2017-04-19 10:50 627因为使用的是Centos所以安装JDK,先从官网下载 h ... -
java 过滤器filter防sql注入
2016-07-14 11:03 990XSSFilter.java public void ... -
JSP 中使用常量防止硬编码
2016-06-11 11:55 2051jsp页面硬编码是个很头疼的问题,工作这么多年,看到 ... -
srpingMvc3.2 配置日期转换
2016-06-10 12:08 754配置spingMVC日期转换器,最近 ... -
eclipse,代码中有错误,项目中却不显示红叉
2016-06-04 23:27 14411.单个项目修改 项目上右键-->prope ... -
FORM表单防止重复提交的解决思路
2016-05-05 23:31 708现在分2种场景描述: ... -
Spring 面向切面编程(AOP)
2016-03-20 18:01 1027一、什么是 AOP 面向 ... -
java 导出Excel poi 实现
2016-01-29 09:22 7032今天又做了一个Excel 导出的功能 ... -
Spring MVC之@RequestBody, @ResponseBody 使用方法
2016-01-21 11:37 3840@RequestBody 作用: i) ... -
jsp 标签 TagSupport的学习
2015-11-11 00:52 709TagSupport的学习 ... -
quartz spring 实现动态定时任务
2015-08-02 17:59 5390在实际项目应用中经常会用到定时任务,可以通过q ... -
Maven 区分开发环境和测试环境 配置
2015-07-30 19:41 1447项目开发过程中,如果一个项目经常发布,那么 ... -
HttpClient 请求和接收
2015-06-29 09:45 523最近要写一个简单的数据请求接口,嫌麻烦就 ... -
网站设计之装饰模式,解决WAP公用部分重复代码
2015-03-30 15:15 892sitemesh应用Decorator模式,用fi ... -
Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
2015-02-09 10:14 760redis是一个著名的key-val ... -
svn cleanup failed–previous operation has not finished; run cleanup if it was in
2014-10-28 15:24 652svn提交遇到恶心的问题,可能是因为上次cleanup中断后 ... -
schema 命名空间的理解
2014-10-06 10:47 753这几天重新温习了一下JAVA基础,发现对SC ... -
Callable与Future的介绍
2014-05-18 14:38 682Callable与 Future 两功能是Java在后 ...
相关推荐
用Struts2+mysql实现的简单信息录入,分页查询
Struts2作为一款流行的Java Web框架,为开发者提供了强大的MVC支持。在处理大量数据时,分页功能是必不可少的,它可以提高用户体验并减少服务器负载。本资源详细介绍了如何在Struts2中自定义分页标签,使得开发过程...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...
本教程将详细讲解如何利用jQuery、Java和Struts2框架来实现一个美观且可自定义样式的分页功能。 首先,jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。在分页场景...
### Struts2 实现分页及 `<s:bean>` 标签详解 #### 一、Struts2 分页概述 在 Java Web 开发中,为了提高用户体验并减轻服务器负担,通常采用分页技术来展示数据。Struts2 框架提供了一套强大的工具和标签库来帮助...
在Java Web开发中,Struts2是一个非常流行的MVC框架,它提供了强大的功能来构建动态、数据驱动的Web应用程序。本篇文章将详细讲解如何利用Struts2和JSP实现前端的分页功能。 分页是Web应用中常见的需求,尤其在处理...
Struts2是一个强大的MVC框架,它在Java Web开发中被广泛应用。自定义标签是Struts2的一个重要特性,允许开发者扩展框架的功能,提供更友好的界面元素。在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨...
Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发。在处理大量数据时,为了提高用户体验,分页显示是非常必要的。本实践项目旨在展示如何在Struts2中实现分页功能,适用于初学者学习和...
【hibernate+struts2分页代码】是关于如何在Java Web开发中结合Hibernate ORM框架和Struts2 MVC框架实现数据分页的功能。在Web应用程序中,分页是提高用户体验的重要手段,它允许用户逐步浏览大量数据,而无需一次性...
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化和高度控制的Web应用程序。在Struts2中,分页是常见的需求,特别是在处理大量数据时,为了提高用户体验,通常需要将结果分成多页显示。本文将...
经典Struts2分页方法是Java Web开发者需要掌握的核心技能之一。 分页的实现通常涉及到以下几个关键知识点: 1. **Action类**:在Struts2中,Action类是处理用户请求的中心。为了实现分页,我们需要创建一个包含...
Struts1.2是Apache软件基金会的Jakarta项目下的一个开源框架,主要用于构建基于Java的Web应用程序。在大型数据展示时,为了提高用户体验,通常会采用分页技术来避免一次性加载大量数据导致页面响应慢或者内存溢出的...
Struts和Hibernate是Java开发中常用的两个开源框架。Struts主要负责MVC(Model-View-Controller)架构的实现,而Hibernate则是一个强大的对象关系映射(ORM)工具,用于处理数据库操作。当我们谈论“Struts写的分页...
Struts2是一个强大的Java EE应用程序框架,用于构建MVC(模型-视图-控制器)架构的Web应用。在处理大量数据时,分页是必不可少的功能,它可以提高用户体验,避免一次性加载过多数据导致页面响应变慢。本文将详细介绍...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它提供了强大的控制层逻辑处理能力,而jQuery则是一个高效、简洁的JavaScript库,简化了DOM操作、事件处理和AJAX交互。当这两者结合时,可以...
此外,为了在页面上显示分页效果,我们需要在JSP(Java Server Pages)中使用Struts的标签库,如`s:iterator`标签遍历查询结果,`s:url`和`s:a`标签创建链接来导航到不同的页面。同时,还需要显示当前页数、总页数、...
Struts2分页源码技术是Web开发中一个重要的实践,尤其是在处理大数据量时,能够有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。在本文中,我们将深入探讨Struts2分页技术的实现原理、应用方法以及与...
在Java Web开发中,Struts2是一个非常流行的MVC框架,它提供了强大的功能来构建动态、数据驱动的Web应用程序。当我们处理大量数据时,分页显示是必不可少的,它可以提高用户体验,避免一次性加载过多的数据导致页面...
根据给定的文件信息,我们将深入探讨“Java分页与Struts2标签”的知识点,以及如何在实际项目中实现分页功能。 ### Java分页原理 分页是Web开发中的常见需求,尤其当数据量庞大时,一次性加载所有数据不仅会增加...