`
hawkist
  • 浏览: 35938 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

构建基于maven的综合项目(六)--分页

阅读更多
一、前端分页
    1、将分页部分单独做成一个jsp
<%@page import="java.net.URLEncoder"%>
<%@page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<link type="text/css" rel="stylesheet" href="<c:url value='/styles/page.css'/>"/>
<%
	//每页显示记录数
	int pageSize = (Integer)request.getAttribute("pageSize");
	//最多显示分页页数
	int displayPageCount = (Integer)request.getAttribute("displayPageCount");
	//当前页
	int currentPage = (Integer)request.getAttribute("currentPage");
	//记录总数
	int count = (Integer)request.getAttribute("count");
	//总页数
	int pageCount = 0;
	if(count % pageSize == 0){
		pageCount = count / pageSize;
	} else {
		pageCount = count / pageSize + 1;
	}
	if(pageCount < currentPage){
		currentPage = pageCount;
	}
	//起始页
	int pageBegin = currentPage - (displayPageCount / 2);
	if(pageBegin < 1){
		pageBegin = 1;
	}
	//结束页
	int pageEnd = currentPage + (displayPageCount / 2);
	if(pageEnd > pageCount){
		pageEnd = pageCount;
	}
	//关键字
	String keyWord = request.getAttribute("keyWord") == null 
		? "" : (String)request.getAttribute("keyWord");
	keyWord = URLEncoder.encode(keyWord,"utf-8");
	String actionString = (String)request.getAttribute("actionString");
%>
<!-- 页面显示连接 -->
<a id="start_page" class="start"><spring:message code="message.page.start"/></a>
<a id="pre_page" class="pre"><spring:message code="message.page.prePage"/></a>
<span>
	<%
		for(int i = pageBegin;i <= pageEnd;i ++){
			if(i != currentPage){
	%>
				<a href="javascript:goPage(<%=i%>);"><%=i%></a>
	<%
			} else {
	%>
				<a class="selected"><%=i%></a>
	<%
			}
		}
	%>
</span>
<a id="next_page" class="next"><spring:message code="message.page.nextPage"/></a>
<a id="end_page" class="end"><spring:message code="message.page.endPage"/></a>
<script type="text/javascript">
	var pageForm = document.forms["pageForm"];
	pageForm.setAttribute("action","<%=actionString%>");
	function prePage(){
		pageForm.currentPage.value = pageForm.currentPage.value - 1;
		pageForm.submit();
	}
	function goPage(currentPage){
		pageForm.currentPage.value = currentPage;
		pageForm.submit();
	}
	function nextPage(){
		pageForm.currentPage.value = parseInt(pageForm.currentPage.value) + 1;
		pageForm.submit();
	}
	//控制链接和样式
	if(<%=pageCount%> <= 1){
		document.getElementById("page_div").style.display = "none";
	}
	if(<%=currentPage%> == 1 && <%=pageCount%> > 1){
		document.getElementById("next_page").href = "javascript:nextPage()";
		document.getElementById("end_page").href = "javascript:goPage(<%=pageCount%>)";
		document.getElementById("page_div").className = "page";
	}
	if(<%=currentPage%> > 1 && <%=currentPage%> != <%=pageCount%>){
		document.getElementById("pre_page").href = "javascript:prePage()";
		document.getElementById("start_page").href = "javascript:goPage(1)";
		document.getElementById("next_page").href = "javascript:nextPage()";
		document.getElementById("end_page").href = "javascript:goPage(<%=pageCount%>)";
		document.getElementById("page_div").className = "page";
	}
	if(<%=currentPage%> > 1 && <%=currentPage%> == <%=pageCount%>){
		document.getElementById("pre_page").href = "javascript:prePage()";
		document.getElementById("start_page").href = "javascript:goPage(1)";
		document.getElementById("page_div").className = "page";
	}
</script>

    2、页面引用
<div id="page_div" class="page">
    <form name="pageForm">
        <input type="hidden" name="currentPage" value="${currentPage }">
        <input type="hidden" name="keyWord" value="${keyWord }"/>
    </form>
    <%@include file="../common/page.jsp" %>
</div>

    3、后台分页对象Page.java
package com.cpkf.notpad.vo;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.cpkf.notpad.commons.constants.PageConstants;

/**  
 * Filename:    Page.java
 * Description: 分页对象
 * Company:     
 * @author:     Jiang.hu
 * @version:    1.0
 * Create at:   2011-6-6 下午12:47:38
 * modified:    
 */
public class Page {
	//每页显示记录数
	private int pageSize;
	//显示分页数
	private int displayPageCount;
	//当前页
	private int currentPage;
	//总记录数
	private int count;
	//关键字
	private String keyWord;
	//当前页记录集合
	private List list = new ArrayList();
	//请求路径
	private String actionString;
	
	public String getActionString() {
		return actionString;
	}
	public void setActionString(String actionString) {
		this.actionString = actionString;
	}
	public List getList() {
		return list;
	}
	public void setList(List list) {
		this.list = list;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getDisplayPageCount() {
		return displayPageCount;
	}
	public void setDisplayPageCount(int displayPageCount) {
		this.displayPageCount = displayPageCount;
	}
	public int getCurrentPage() {
		return currentPage;
	}
	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public String getKeyWord() {
		return keyWord;
	}
	public void setKeyWord(String keyWord) {
		this.keyWord = keyWord;
	}
	/* 
	 * method name   : initPage
	 * description   : 初始化page对象
	 * @author       : Jiang.Hu
	 * @param        : @param request
	 * @return       : Page
	 * Create at     : 2011-6-6 下午12:56:40
	 * modified      : 
	 */      
	public static Page initPage(HttpServletRequest request){
		int currentPage = request.getParameter("currentPage") == null 
			? 1 : Integer.parseInt(request.getParameter("currentPage"));
		String keyWord = request.getParameter("keyWord") == null 
			? "" : request.getParameter("keyWord");
		String actionString = request.getContextPath() + request.getServletPath();
		Page page = new Page();
		page.setPageSize(PageConstants.PAGE_SIZE);
		page.setDisplayPageCount(PageConstants.DISPLAY_PAGE_COUNT);
		page.setCurrentPage(currentPage);
		page.setKeyWord(keyWord);
		page.setActionString(actionString);
		return page;
	}
	/* 
	 * method name   : setPage
	 * description   : 设置page对象
	 * @author       : Jiang.Hu
	 * @param        : @param request
	 * @param        : @param page
	 * @return       : void
	 * Create at     : 2011-6-6 下午12:56:57
	 * modified      : 
	 */      
	public static void setPage(HttpServletRequest request,Page page){
		request.setAttribute("pageSize", page.getPageSize());
		request.setAttribute("displayPageCount", page.getDisplayPageCount());
		request.setAttribute("currentPage", page.getCurrentPage());
		request.setAttribute("count", page.getCount());
		request.setAttribute("keyWord", page.getKeyWord());
		request.setAttribute("actionString", page.getActionString());
	}
}

    4、servlet
@RequestMapping(value="/account/showUserList.do",method={RequestMethod.POST,RequestMethod.GET})
	public String showUserList(HttpServletRequest request,HttpServletResponse response){
		Page page  = accountService.getAllAccountVosForPage(Page.initPage(request));
		List<AccountVo> accountList = page.getList();
		if(accountList != null){
			request.setAttribute(AccountConstants.ACCOUNT_LIST, accountList);
		}
		Page.setPage(request, page);
		return "account/accountList";
	}

    5、dao层我们将分页查询的数据放入page对象中返回即可;
        在page.jsp中,我们动态获取页面请求,并设置到分页form的action属性中,这样,一个页面可以满足不同分页请求
分享到:
评论

相关推荐

    maven springBoot mybatisPlus H-ui Admin dataTable

    Maven是一款项目管理和综合工具,它主要用来管理Java项目的构建、依赖和文档等。通过Maven,开发者可以定义项目的构建过程,管理项目依赖,自动生成项目报告,以及执行各种构建生命周期任务。Maven使用XML格式的`pom...

    springboot+spring-data-jpa maven项目

    Maven 是一个项目管理和综合工具,它帮助开发者管理项目依赖、构建项目,并提供了一套标准的方式来组织项目结构。 1. **Spring Boot 配置**: - `pom.xml` 文件:这是 Maven 项目的配置文件,定义了项目依赖,包括...

    maven+ssm+pagehelper分页查询

    Maven是Apache软件基金会开发的项目管理和综合工具,它可以帮助开发者构建、管理、和部署Java项目。在本项目中,Maven作为依赖管理工具,负责管理所有项目的依赖关系,确保各个库文件的正确版本和相互之间的依赖关系...

    struts2+easyui 基于maven实现单元格可编辑表格datagrid

    首先,Maven是Apache软件基金会开发的一个项目管理和综合工具,它能够帮助开发者管理项目的构建、报告和文档生成。Maven使用一个项目对象模型(Project Object Model,POM),通过POM文件来管理项目的依赖关系、构建...

    maven 项目cxf 使用jqgrid4.4.3 项目开发代码

    在本项目中,"maven 项目cxf 使用jqgrid4.4.3 项目开发代码" 是一个基于Maven构建的Java应用,利用Apache CXF框架开发RESTful服务,并结合jqGrid 4.4.3这个前端JavaScript库进行数据展示和交互。以下是关于这些技术...

    基于maven的bbs小型论坛

    【基于Maven的BBS小型论坛】是一款使用Java Web技术栈构建的在线讨论平台,主要由JSP、Servlet和MySQL数据库组成。在这个项目中,开发者运用了现代化的前端框架Bootstrap和数据展示库bootstrap-table,以及项目管理...

    maven+springboot+mybatis-plus+freemarker+log4j小样例

    在本项目中,"maven+springboot+mybatis-plus+freemarker+log4j小样例"是一个综合性的示例,旨在帮助初学者或开发者理解如何将这些流行的Java技术栈整合到一个应用程序中。以下是对每个组件的详细解释: 1. Maven:...

    maven+SSM框架+登录+pagehelper+分页+pdf下载

    该项目基于Maven构建,采用了经典的SSM(Spring、SpringMVC、MyBatis)框架,旨在实现用户登录功能,并结合PageHelper实现高效的数据分页,同时支持PDF文档的下载。以下将详细介绍这些技术及其在项目中的应用。 1. ...

    基于Maven+SpringMVC+Hibernate在线考试系统设计毕业设计.zip

    6. **项目结构**:基于Maven的项目通常遵循标准的目录结构,如src/main/java(源代码)、src/main/resources(资源文件)、src/test/java(测试代码)等。在Maven_SpringMVC_Hibernate_OnlineExam-master目录下,...

    ssm框架+maven+velocity+pagehelper分页整合

    4. **Maven**:Maven是一个项目管理和综合工具,它通过POM(Project Object Model)文件来管理项目的依赖关系,自动构建项目,执行测试,打包和部署应用。在本项目中,Maven用于自动化构建流程,确保所有依赖项正确...

    250基于Maven+SpringMVC高校教务管理系统带文档_springmvc_教务管理_

    总的来说,“250基于Maven+SpringMVC高校教务管理系统”是一个综合性的项目,涉及到多方面的技术和知识,通过这个系统,我们可以学习到如何利用现代开发工具和框架构建大型的Web应用,以及如何设计和实现高效的教务...

    maven_ssh图书管理系统.zip

    【SSH Maven 图书管理系统】是基于Java Web技术的综合应用,它利用了Maven作为构建工具,Struts作为表现层框架,Spring作为业务层框架,Hibernate作为数据持久化层框架,实现了图书管理系统的全面功能。这个系统具备...

    Maven 基于SSM框架的增删改(使用了bootstrap的模态框,分页插件pagehelper, ajax等,附sql文件)

    1. **Maven**:Maven是一个项目管理和综合工具,它帮助开发者管理项目构建、依赖关系和文档。Maven使用一个项目对象模型(POM),定义项目信息和构建过程,通过一套预定义的生命周期和插件,简化构建过程,使得依赖...

    汽车管理系统,spring mvc+ maven,分页

    总结起来,这个汽车管理系统是一个基于Spring MVC和Maven的Web应用,它具有基础的数据库操作功能,包括增删改查和分页展示,能够帮助用户高效地管理汽车相关的各种信息。开发者可以在此基础上扩展其他高级功能,如...

    IntelliJ IDEA下SpringBoot+Maven+JPA+Thymeleaf整合实现增删改查及分页入门项目实例.zip

    这是一个基于Java技术栈的Web开发入门项目实例,主要利用IntelliJ IDEA作为集成开发环境,SpringBoot作为核心框架,Maven作为项目构建工具,JPA(Java Persistence API)作为持久层解决方案,以及Thymeleaf作为视...

    maven-jfinal

    "Maven-JFinal" 是一个基于 Maven 构建工具和 JFinal 框架的项目,旨在简化 Java 开发中的模型与数据库操作。JFinal 是一款轻量级的 Java Web 开发框架,它的核心设计目标是开发迅速、代码量少、学习简单,同时也...

    maven搭建SSM框架

    本教程将基于Maven构建一个基本的SSM项目,实现对MySQL数据库的简单页面访问。 首先,我们需要理解Maven。Maven是一个项目管理和综合工具,它通过一个项目对象模型(Project Object Model, POM)来管理项目的构建、...

    SSM框架分页.rar

    这个"SSM框架分页.rar"压缩包包含了一个基于MyEclipse的项目示例,主要展示了如何在SSM环境中实现ajax分页功能,这在大数据量展示时是非常实用的。 首先,Spring框架作为核心容器,负责管理应用对象,通过依赖注入...

    Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统

    在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...

    maven+springmvc+springsecurity+hibernate框架整合开发源代码

    首先,Maven是一个项目管理和综合工具,主要负责项目的构建、依赖管理和项目信息管理。通过在项目中引入Maven,开发者可以方便地在线引用jar包,避免了手动下载和管理依赖的问题。Maven使用XML格式的配置文件(pom....

Global site tag (gtag.js) - Google Analytics