一、前端分页
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是一款项目管理和综合工具,它主要用来管理Java项目的构建、依赖和文档等。通过Maven,开发者可以定义项目的构建过程,管理项目依赖,自动生成项目报告,以及执行各种构建生命周期任务。Maven使用XML格式的`pom...
Maven 是一个项目管理和综合工具,它帮助开发者管理项目依赖、构建项目,并提供了一套标准的方式来组织项目结构。 1. **Spring Boot 配置**: - `pom.xml` 文件:这是 Maven 项目的配置文件,定义了项目依赖,包括...
Maven是Apache软件基金会开发的项目管理和综合工具,它可以帮助开发者构建、管理、和部署Java项目。在本项目中,Maven作为依赖管理工具,负责管理所有项目的依赖关系,确保各个库文件的正确版本和相互之间的依赖关系...
首先,Maven是Apache软件基金会开发的一个项目管理和综合工具,它能够帮助开发者管理项目的构建、报告和文档生成。Maven使用一个项目对象模型(Project Object Model,POM),通过POM文件来管理项目的依赖关系、构建...
在本项目中,"maven 项目cxf 使用jqgrid4.4.3 项目开发代码" 是一个基于Maven构建的Java应用,利用Apache CXF框架开发RESTful服务,并结合jqGrid 4.4.3这个前端JavaScript库进行数据展示和交互。以下是关于这些技术...
【基于Maven的BBS小型论坛】是一款使用Java Web技术栈构建的在线讨论平台,主要由JSP、Servlet和MySQL数据库组成。在这个项目中,开发者运用了现代化的前端框架Bootstrap和数据展示库bootstrap-table,以及项目管理...
在本项目中,"maven+springboot+mybatis-plus+freemarker+log4j小样例"是一个综合性的示例,旨在帮助初学者或开发者理解如何将这些流行的Java技术栈整合到一个应用程序中。以下是对每个组件的详细解释: 1. Maven:...
该项目基于Maven构建,采用了经典的SSM(Spring、SpringMVC、MyBatis)框架,旨在实现用户登录功能,并结合PageHelper实现高效的数据分页,同时支持PDF文档的下载。以下将详细介绍这些技术及其在项目中的应用。 1. ...
6. **项目结构**:基于Maven的项目通常遵循标准的目录结构,如src/main/java(源代码)、src/main/resources(资源文件)、src/test/java(测试代码)等。在Maven_SpringMVC_Hibernate_OnlineExam-master目录下,...
4. **Maven**:Maven是一个项目管理和综合工具,它通过POM(Project Object Model)文件来管理项目的依赖关系,自动构建项目,执行测试,打包和部署应用。在本项目中,Maven用于自动化构建流程,确保所有依赖项正确...
总的来说,“250基于Maven+SpringMVC高校教务管理系统”是一个综合性的项目,涉及到多方面的技术和知识,通过这个系统,我们可以学习到如何利用现代开发工具和框架构建大型的Web应用,以及如何设计和实现高效的教务...
【SSH Maven 图书管理系统】是基于Java Web技术的综合应用,它利用了Maven作为构建工具,Struts作为表现层框架,Spring作为业务层框架,Hibernate作为数据持久化层框架,实现了图书管理系统的全面功能。这个系统具备...
1. **Maven**:Maven是一个项目管理和综合工具,它帮助开发者管理项目构建、依赖关系和文档。Maven使用一个项目对象模型(POM),定义项目信息和构建过程,通过一套预定义的生命周期和插件,简化构建过程,使得依赖...
总结起来,这个汽车管理系统是一个基于Spring MVC和Maven的Web应用,它具有基础的数据库操作功能,包括增删改查和分页展示,能够帮助用户高效地管理汽车相关的各种信息。开发者可以在此基础上扩展其他高级功能,如...
这是一个基于Java技术栈的Web开发入门项目实例,主要利用IntelliJ IDEA作为集成开发环境,SpringBoot作为核心框架,Maven作为项目构建工具,JPA(Java Persistence API)作为持久层解决方案,以及Thymeleaf作为视...
"Maven-JFinal" 是一个基于 Maven 构建工具和 JFinal 框架的项目,旨在简化 Java 开发中的模型与数据库操作。JFinal 是一款轻量级的 Java Web 开发框架,它的核心设计目标是开发迅速、代码量少、学习简单,同时也...
本教程将基于Maven构建一个基本的SSM项目,实现对MySQL数据库的简单页面访问。 首先,我们需要理解Maven。Maven是一个项目管理和综合工具,它通过一个项目对象模型(Project Object Model, POM)来管理项目的构建、...
这个"SSM框架分页.rar"压缩包包含了一个基于MyEclipse的项目示例,主要展示了如何在SSM环境中实现ajax分页功能,这在大数据量展示时是非常实用的。 首先,Spring框架作为核心容器,负责管理应用对象,通过依赖注入...
在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...
首先,Maven是一个项目管理和综合工具,主要负责项目的构建、依赖管理和项目信息管理。通过在项目中引入Maven,开发者可以方便地在线引用jar包,避免了手动下载和管理依赖的问题。Maven使用XML格式的配置文件(pom....