pager-taglib插件进行普通分页
pager-taglib是一款支持多种风格的分页显示。
多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。
接触的当天、匆匆看了下Demo和文档,发现这个很早(2002年最新版一直到现在)就已经有的东西,似 乎比较擅长显示端分页。如,把所有的数据传到页面,通过参数设定页面大小等,可能得到很完美的分页效果。
select * from user limit 0, 10
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.csr.web.domain.User"><resultMap type="com.csr.web.domain.User" id="userResult"><result property="id" column="id" jdbcType="INTEGER" javaType="java.lang.Integer" /><result property="username" column="username" /><result property="password" column="password" /><result property="email" column="email" /></resultMap><select id="findUserPage" resultMap="userResult">select * from user limit #{_parameter.offset,jdbcType=INTEGER},#{_parameter.pagesize,jdbcType=INTEGER}</select><select id="findUserCount" resultType="int">select count(*) from user</select></mapper>
@Repositorypublic class UserDaoImpl implements UserDao {private final String FIND_USER_COUNT = "findUserCount";private final String FIND_USER_PAGE = "findUserPage";@Autowiredprivate SqlSessionTemplate sqlSessionTemplate;public List<User> findAllUser(Pager page) {return sqlSessionTemplate.selectList(FIND_USER_PAGE, page);}public int findUserCount() {return sqlSessionTemplate.selectOne(FIND_USER_COUNT);}}
@Service@Transactionalpublic class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;public List<User> findAllUser(Pager page) {return userDao.findAllUser(page);}public int findUserCount() {return userDao.findUserCount();}}
@Controller@Scope("prototype")public class UserAction extends ActionSupport {@Autowiredprivate UserService userService;private User user;private List<User> userList;private PageModel pm ;private Pager pager;public Pager getPager() {return pager;}public void setPager(Pager pager) {this.pager = pager;}public PageModel getPm() {return pm;}public void setPm(PageModel pm) {this.pm = pm;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public List<User> getUserList() {return userList;}public void setUserList(List<User> userList) {this.userList = userList;}public String queryAllUser() {int pagesize=3;int offset=0;HttpServletRequest request = ServletActionContext.getRequest();if(request.getParameter("pager.offset")!=null){offset=Integer.parseInt(request.getParameter("pager.offset"));}Pager page = new Pager();page.setOffset(offset);page.setPagesize(pagesize+offset+1);// userList = userService.findAllUser();userList = userService.findAllUser(page);int count = userService.findUserCount();pm = new PageModel();pm.setDatas(userList);pm.setTotal(count);return "userList";}}
public class Pager implements Serializable {private static final long serialVersionUID = 1L;private int pagesize;private int offset;public int getPagesize() {return pagesize;}public void setPagesize(int pagesize) {this.pagesize = pagesize;}public int getOffset() {return offset;}public void setOffset(int offset) {this.offset = offset;}}
public class PageModel {private int offset = 0;private int pagesize = 10;private int total;private List datas;public int getOffset() {return offset;}public void setOffset(int offset) {this.offset = offset;}public int getPagesize() {return pagesize;}public void setPagesize(int pagesize) {this.pagesize = pagesize;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public List getDatas() {return datas;}public void setDatas(List datas) {this.datas = datas;}}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%@ taglib prefix="s" uri="/struts-tags"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>无标题文档</title></head><body><center><h2>用户列表</h2><!--<table width="90%" border="1"><tr><th>用户id</th><th>用户名称</th><th>用户密码</th><th>操作</th></tr><s:iterator value="userList"><tr><td><s:property value="id"/> </td><td><s:property value="username"/> </td><td><s:property value="password"/> </td><td><s:a action="user_updateUI.action"><s:param name="user.id">${id}</s:param>修改</s:a><s:a action="user_delete.action"><s:param name="user.id">${id}</s:param>删除</s:a></td></tr></s:iterator></table>--><table width="778" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6"><tr bgcolor="#EFF3F7"><TD align="center">ID</TD><TD align="center">内容</TD><TD align="center">时间</TD><TD align="center">相关操作</TD></tr><c:if test="${!empty pm.datas}"><c:forEach items="${pm.datas}" var="user"><tr bgcolor="#EFF3F7"><td align="center">${user.id }</td><td align="center">${user.username }</td><td align="center">${user.password}</td><td align="center">修改删除</td></tr></c:forEach></c:if><c:if test="${empty pm.datas}"><tr><td colspan="5" align="center" bgcolor="#EFF3F7">没有找到相应的记录</td></tr></c:if></table><pg:pager url="user_queryAllUser.action" items="${pm.total}" export="currentPageNumber=pageNumber" maxPageItems="3"><pg:first><a href="${pageUrl}">首页</a></pg:first><pg:prev><a href="${pageUrl }">上一页</a></pg:prev><pg:pages><c:choose><c:when test="${currentPageNumber eq pageNumber}"><font color="red">${pageNumber }</font></c:when><c:otherwise><a href="${pageUrl }">${pageNumber }</a></c:otherwise></c:choose></pg:pages><pg:next><a href="${pageUrl }">下一页</a></pg:next><pg:last><a href="${pageUrl }">尾页</a></pg:last></pg:pager></center></body></html>
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数items:总记录数,pager标签正是根据这个值来计算分页参数的maxPageItems:每页显示的行数,默认为10maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10pg:first【第一页的标签】重要参数说明:export变量的意义:pageUrl - 分页链接URL地址(最重要的export参数)pageNumber - 页码firstItem - 首页第一行的索引值lastItem - 首页最后一行的索引值pg:pre【上一页标签】重要参数说明:export变量的意义:pageUrl - 分页链接URL地址(最重要的export参数)pageNumber - 页码firstItem - 前页第一行的索引值lastItem - 前页最后一行的索引值pg:next【下一页标签】重要参数说明:export变量的意义:pageUrl - 分页链接URL地址(最重要的export参数)pageNumber - 页码firstItem - 下页第一行的索引值lastItem - 下页最后一行的索引值pg:last【最后一页的标签】重要参数说明:export变量的意义:pageUrl - 分页链接URL地址(最重要的export参数)pageNumber - 页码firstItem - 尾页第一行的索引值lastItem - 尾页最后一行的索引值pg:pages【这个标签用来循环输出页码信息】重要参数说明:export变量的意义:pageUrl - 分页链接URL地址(最重要的export参数)pageNumber - 页码firstItem - pageNumber这个页码指定的那一页的第一行的索引值lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
pager-taglib插件进行普通分页的更多相关文章
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- JSP分页之结合Bootstrap分页插件进行简单分页
结合Bootstrap的分页插件实现分页,其中策略是每次显示5个按钮,然后根据当前页的不同来进行不同的显示: 1. 当前页<3,如果当前页大于5页就显示前五页,不然就显示1~totalPage. ...
- jquery自定义插件来实现分页的效果
本节将介绍如何定义自己的jquery插入,实现分页效果,话不多说,.看看达到的效果: 分页插件 实现的代码例如以下: <!DOCTYPE HTML PUBLIC "-//W3C//DT ...
- SSM 使用 mybatis 分页插件 pagehepler 实现分页
使用分页插件的原因,简化了sql代码的写法,实现较好的物理分页,比写一段完整的分页sql代码,也能减少了误差性. Mybatis分页插件 demo 项目地址:https://gitee.com/fre ...
- PageHelper分页插件及通用分页js
分页概述 1.物理分页 物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序员只需要编写带有limit关键字的SQL语句,数据库返回的就是分页结果. ...
- SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
前言:本文档使用的是 SpringBoot,如果是 Spring 还需要在 MyBatis 配置 xml 中配置拦截器,并且 PageHelper 是针对 MyBatis 的,MyBatis 的集成不 ...
- 插件PageHelper实现分页查询
一,需求: CommonQuery--PyQueryBean PyQueryBean:鹏飞历史记录查询,以往哪些人对征信进行了查询.CommonQuery:查询条件:根据查询人(umName).被查询 ...
- jquery插件pagination实现分页
1.效果 2.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...
- mybatis插件机制及分页插件原理
MyBatis 插件原理与自定义插件: MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强MyBatis 的功能.需要注意的是,如果没有完全理解MyBatis 的运行原理和插件的工作方式 ...
随机推荐
- C#中的Virtual、Override和new关键词理解
来源:http://blog.csdn.net/jackiezhw/article/details/2673992 在 C# 中,派生类可以包含与基类方法同名的方法. 基类方法必须定义为 virtua ...
- 设计模式C#(一)
引言 模式(pattern) 一种方案,利用这种方案 完成某种工作. 一种途径,通过这种途径达到某个目的. 一种技术,利用他有效的完成某项工作. 某些领域的从业人员会产生该领域的习惯用语(行话),用语 ...
- android版本 busybox
http://www.busybox.net/downloads/binaries/1.21.1/ 根据不同的平台选择busybox已经编译好的
- VS2010+PCL+openni配置
PCL中文论坛:http://www.pclcn.org/bbs/forum.php 1.安装 pcl 的完全安装包可以到: http://pointclouds.org/downloads/wind ...
- 问题:FF中把UL下的LI设为左浮动UL的背景色就没有了?
因为容器的子元素设置浮动后, 内容移出了文档流! 解决办法: 1.给个overflow:hidden;作为闭合浮动元素2.设定UL 一个固定的高度 下面是一些与之相关的解决办法,参考文章<那些 ...
- HBase性能优化方法总结(一):表的设计
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法 ...
- HDU 5768 Lucky7 (容斥原理 + 中国剩余定理 + 状态压缩 + 带膜乘法)
题意:……应该不用我说了,看起来就很容斥原理,很中国剩余定理…… 方法:因为题目中的n最大是15,使用状态压缩可以将所有的组合都举出来,然后再拆开成数组,进行中国剩余定理的运算,中国剩余定理能够求出同 ...
- angularJS 判断
判断语句: ng-switch on ng-switch-when ng-switch-when ng-if=”person.sex==1“ <ul> <li ng-repeat=” ...
- C# devExpress GridControl 统计行总数
dev我不怎么会用,边学边记: 如果要在gridControl 页面底部统计记录总数只需两步: 1:设置显示gridControl页脚 2,.设置统计列: DevExpress.XtraGrid.Co ...
- hdu_5418_Victor and World(状压DP+Floyd)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5418 题意:给你n个点,和一些边,找一条路径经过全部的点,并回到起点,问最小的花费是多少, 题解:m& ...