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 的运行原理和插件的工作方式 ...
随机推荐
- 将decimal类型的数据转成2.12这样价钱的显示方式
UnitPrice = string.Format("{0:.00}", m.UnitPrice),
- LightOJ 1370 Bi-shoe and Phi-shoe 数论
题目大意:f(x)=n 代表1-x中与x互质的数字的个数.给出n个数字a[i],要求f(x)=a[i],求x的和. 思路:每个素数x 有x-1个不大于x的互质数.则f(x)=a[i],若a[i]+1为 ...
- 444A/CF
题目链接[http://codeforces.com/problemset/problem/444/A] 题意:给出一个无向图,找出一个联通子图,定义密度#=v(顶点值的和)/e(边值的和). 条件: ...
- HttpSession详解
HttpSession详解 session的机制 http是无状态的协议,客户每次读取web页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢?s ...
- Dom2016/4/20
childNode:标准情况下:包括文本节点和元素节点 非标准下:只包括元素节点 在标准情况下:包含非法嵌套的子节点. 非标准下:ie7一下的版本不包含非法嵌套的子节点 DOm的节点类型:12种 元素 ...
- javascript语句语义大全(6)
var d = new Date();//创建当前日期对象var d = new Date('2016/03/22');//允许var d = new Date('2016/3/22');//允许va ...
- ubuntu11.10server 安装php-redis插件
1.下载php-redis插件 1 sudo wget https://github.com/nicolasff/phpredis/archive/master.zip 2.安装 1 2 3 4 5 ...
- 转:HTTP协议详解(真的很经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- 6-SUPER关键字
(1)强行调用父类方法的执行(2)super不一定在重写中使用,也可以表示那些方法是从父类中继承而来的.
- Chapter 1 First Sight——23
I stared because their faces, so different, so similar, were all devastatingly, inhumanly beautiful. ...