`

采用mysql数据库的struts2 分页实现

阅读更多

       实现SSI分页的基本步骤:查看使用数据库的分页方式;java后台数据的处理,jsp前台数据的显示

       采用mysql数据库分页,主要用到mysql数据检索中的limit a,b 函数实现,a表示从第几条开始,b表示需要获取的条数,采用ibatis框架xml代码如下:

select ... from table limit #start#,#pageSize#

       java后台数据的处理主要采用自己写一个分页类来实现前台和数据的交互操作,代码如下:

package com.common.pojo;

import java.io.Serializable;

public class PageInfo implements Serializable {

	private static final long serialVersionUID = 7553973735794350843L;

	/**
	 * 总记录数 默认为-1
	 */
	private int totalRecords = -1;
	
	/**
	 * 总页数 
	 */
	private int totalPages;
	
	/**
	 * 每页显示的记录数
	 * */
	private int pageSize = 10; 
	
	/**
	 *  当前所在页码(在第几页)
	 * */
	private int curPageNo = 1;
	
	/**
	 * 显示第几页 
	 */
	private int curPage;
	
	
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getCurPageNo() {
		return curPageNo;
	}
	public void setCurPageNo(int curPageNo) {
		this.curPageNo = curPageNo;
	}
	public int getTotalPages() {
		this.totalPages=this.totalRecords%this.pageSize==0?this.totalRecords/this.pageSize:this.totalRecords/this.pageSize+1;
		return totalPages;
	}
	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}
	public int getCurPage() {
		return curPage;
	}
	public void setCurPage(int curPage) {
		this.curPage = curPage;
	}
	public int getTotalRecords() {
		return totalRecords;
	}
	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}
	
}

  定义了几个分页的基本属性,可根据自己进行优化。初始化了属性的值,将pageSize默认一页10条,getTotalPage直接将现有的数据计算出来,方便调用。

在BaseDomain将pageInfo作为它的属性来调用,然后每个不同的domain继承BaseDomain

public class BaseDomain implements Serializable {

	private static final long serialVersionUID = -653238472375867369L;
	
	PageInfo page = null;

	public PageInfo getPage() {
		if(page == null){
			page = new PageInfo();
		}
		return page;
	}

	public void setPage(PageInfo page) {
		this.page = page;
	}
}

 

 

后台dao层代码:

(List<ExamInfoDomain>)queryForList("query_exam_info",map);

 service层,根据页面传过来的数据设置Map

Map<String, Object> map = new HashMap<String, Object>();
		map.put("start", (page.getCurPageNo()-1)*page.getPageSize());
   		map.put("pageSize",page.getPageSize());
                ......

 action层直接调用service层方法就可以了。

 

页面实现分页:

 

 
<s:form action="/queryExamByCondition" id="mainForm" namespace="/" method="post">
<s:hidden name="examInfoDomain.page.totalPages"></s:hidden> 
.....
<div class="pth_page">
    <a href="javascript:queryBefOrNext(${examInfoDomain.page.curPageNo-1 <= 1?1:examInfoDomain.page.curPageNo-1})" class="nbtn">上一页</a>
  	<s:if test="examInfoDomain.page.curPageNo <= examInfoDomain.page.totalPages / 7 * 7">
         <s:bean name="org.apache.struts2.util.Counter" id="counter">
           <s:param name="first" value="1 + 7 * ((examInfoDomain.page.curPageNo-1)/7)" />
            <s:param name="last" value="7 + 7 * ((examInfoDomain.page.curPageNo-1)/7)" />
            <s:iterator var="curPage">
        	<s:if test="#curPage == examInfoDomain.page.curPageNo">
            	<a href="javascript:GotoPage(<s:property/>);" class="current"> <s:property/></a>
            </s:if>
            <s:else>
            	<a href="javascript:GotoPage(<s:property/>);"> <s:property/></a>
            </s:else>
            </s:iterator>
         </s:bean>
    </s:if>
    <s:else>
         <s:bean name="org.apache.struts2.util.Counter" id="counter">
        	<s:param name="first" value="examInfoDomain.page.totalPages / 7 * 7 + 1" />
        	<s:param name="last" value="examInfoDomain.page.totalPages" />
        	<s:iterator var="curPage">
        	<s:if test="#curPage == examInfoDomain.page.curPageNo">
            	<a href="javascript:GotoPage(<s:property/>);" class="current"> <s:property/></a>
            </s:if>
            <s:else>
            	<a href="javascript:GotoPage(<s:property/>);"> <s:property/></a>
            </s:else>
            </s:iterator>
         </s:bean>
    </s:else>
    <a href="javascript:queryBefOrNext(${examInfoDomain.page.curPageNo+1 >= examInfoDomain.page.totalPages?examInfoDomain.page.totalPages:examInfoDomain.page.curPageNo+1})" class="nbtn">下一页</a>
	 &nbsp;共${examInfoDomain.page.totalPages}页&nbsp;到第<input type="text" id="curPageNo" value="" class="cinput">页 
	<a href="javascript:GotoPage()" class="cbtn">确定</a>
	</div>

...
</form>

 javascript 实现方法:

	function GotoPage(pageNum){
			if(pageNum == undefined || pageNum == null || $.trim(pageNum) == ""){
				pageNum = $("#curPageNo").val();
				var reg = /^\d+$/;
				if(reg.test(pageNum)==false){
					return;
				}
				var totalPages = $("#mainForm_examInfoDomain_page_totalPages").val();
				if( $.trim(pageNum) * 1 > totalPages * 1)
				{
					pageNum = totalPages;
				}
			}
			var form = $("#mainForm");
			form.attr("action","queryExamByCondition?examInfoDomain.page.curPage="+$.trim(pageNum));
			form.submit();
		}
		
		function queryBefOrNext(curPage){
			var form = $("#mainForm");
			form.attr("action","queryExamByCondition?examInfoDomain.page.curPage="+curPage);
			form.submit();
		}

 这样,基于mysql数据库的struts2分页就搞定了,后台不难,前台页面实现1,2,3,4,5,6,7这个稍微有点不好弄。

 

分享到:
评论

相关推荐

    Struts2 分页实现

    在提供的"InterlibLog"文件中,可能包含了实现这个分页功能的具体代码示例,包括Action类、数据库查询逻辑、Struts2配置文件以及对应的JSP页面。通过分析和学习这些代码,你可以更深入地理解Struts2的分页实现过程。...

    eclipse+mysql+struts实现分页显示

    本教程将介绍如何使用Eclipse IDE、MySQL数据库以及Struts框架来实现一个分页显示功能。 首先,Eclipse是Java开发的主流集成开发环境(IDE),提供了丰富的代码编辑、调试和项目管理工具。在本项目中,我们将使用...

    Struts2分页(含mysql)

    本教程将详细讲解如何在Struts2框架中实现分页功能,并结合MySQL数据库进行数据操作。 首先,我们需要理解分页的基本原理。分页是将大量数据分为若干个较小的部分,每个部分称为一页,用户可以逐页浏览,而不需要一...

    struts2分页代码的示例

    下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...

    Struts1.2实现MySQL数据库分页

    在Struts1.2中实现MySQL数据库分页,主要涉及以下几个关键知识点: 1. **Action类**:在Struts1.2中,业务逻辑通常由Action类处理。你需要创建一个Action类,该类负责接收用户的请求参数,如当前页数和每页显示的...

    struts2+MySQL分页(精).

    本文将详细介绍如何利用Struts2框架结合MySQL数据库实现高效的数据分页功能。 #### 二、Struts2框架简介 Struts2是一个基于Java的开源Web应用框架,它继承了Struts1的优点,并对其进行了改进。Struts2采用MVC设计...

    Struts实现MySQL数据库分页.chm

    Struts实现MySQL数据库分页.chm。教程比较详细,也比较通用,pagebean作为分页bean。

    Struts1.2实现MySQL数据库分页.txt

    本文档将详细介绍如何在Struts1.2框架下实现对MySQL数据库的分页功能。分页是Web应用中常见的一种技术,用于处理大量数据时提高用户体验,通过分页用户可以逐页浏览数据而无需一次性加载所有数据到前端。 #### 环境...

    struts2,hibernate对MYSQL数据库查增删改操作的WEB小程序

    Struts2和Hibernate是两种非常重要的Java Web开发框架,它们在构建基于MySQL数据库的应用程序时发挥着关键作用。Struts2作为一个MVC(Model-View-Controller)框架,主要用于处理用户请求并展示结果,而Hibernate则...

    struts2 +mysql 分页显示 源码

    总的来说,Struts2结合MySQL实现分页显示,涉及到的主要知识点包括:Struts2框架的工作原理、Action的设计与实现、数据库查询(特别是分页查询)、前端页面的渲染以及用户交互设计。通过对这些技术的熟练掌握,...

    struts2.0实现的数据分页实现及实现分页步骤

    实现Struts2.0中的数据分页主要涉及以下几个步骤: 1. **数据库设计与连接**: - 首先,你需要创建一个数据库,比如这里提到的MySQL,并在其中存储数据。例如,创建一个名为"user1"的表,包含需要分页展示的数据。...

    JSP Struts2 分页 导出Excel

    在Struts2中,可以使用第三方插件如DisplayTag或自己编写Action来实现分页。通常,我们需要在Action中获取数据库查询的结果集,并计算总记录数,然后根据每页显示的条数进行分页。JSP页面上通过参数传递当前页码,...

    Struts2+jdbc+mysq分页Demo

    在本"Struts2+jdbc+mysql分页Demo"中,我们将探讨如何使用Struts2框架配合JDBC和MySQL数据库实现动态网页的分页功能。 首先,我们需要理解分页的基本概念。分页是将大量数据分割成小块,以便用户可以逐步浏览和处理...

    mysql -struts 分页源码

    本资源"mysql -struts 分页源码"显然关注的是如何在Struts框架下实现MySQL数据的分页显示。分页是一种优化用户界面和提高性能的技术,它允许用户逐步浏览大量数据,而不是一次性加载所有内容。接下来,我们将深入...

    用struts实现的分页

    可以使用`LIMIT`和`OFFSET`关键字在MySQL等支持的数据库中实现分页。例如: ```sql SELECT * FROM table LIMIT :limit OFFSET :offset; ``` 其中`:limit`是每页显示的条目数,`:offset`是当前页的偏移量(即...

    struts+mysql+eclipse实现分页

    下面我们将详细介绍如何利用Struts作为MVC框架,MySQL作为数据库,以及Eclipse作为集成开发环境来实现分页功能。 首先,Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它简化了开发过程,...

    Struts2分页程序

    根据提供的信息,我们可以深入探讨如何在Struts2框架中实现分页功能。Struts2是一个开源的、用于创建企业级Java Web应用的框架。它基于MVC(模型-视图-控制器)架构模式,能够帮助开发者高效地组织代码并简化Web开发...

    Struts2实现的吊炸天留言板系统(包含完整源+mysql数据库+bootstraps3)

    Struts2实现的吊炸天留言板系统(包含完整源+mysql数据库+bootstraps3) 1)数据库设计(对于系统的功能进行数据库设计) 2)用户登录界面以及注册设计 3)按照留言的时间的先后顺序进行留言排序以及分页 4)对于...

    jquery ajax 分页 局部刷新 mysql数据库

    本教程将探讨如何使用jQuery的AJAX功能实现页面局部刷新,同时结合MySQL数据库和Struts2框架实现高效的分页功能。 首先,jQuery AJAX是JavaScript库jQuery提供的一种异步数据通信方式,它允许我们在不刷新整个页面...

Global site tag (gtag.js) - Google Analytics