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 的运行原理和插件的工作方式 ...
随机推荐
- sql server 的datediff函数
这两天要把一个sqlserver数据库的程序改成oracle的,发现两个数据库之间的函数很多不一样.sqlserver的数据库中的DateDiff 函数用法解释如下: 描述 返回两个日期之间的时间间隔 ...
- ant 配置 和测试 1
配置路径 D:\dba\change\UAT\unity\schema\test ----v0 版本 sql.xml (默认target 是versionfinal ,也就是最终版本) --ver ...
- 使用jstl标签遍历双层的map(map下面的map)
<c:forEach var="firstMap" items="${map}"> <c:forEach var="secondMa ...
- PHP5.4 for Apache, php 5.4.0安装过程、方法、配置 ; Apache2.2支持php5.4的配置方法
那我们如何选择下载哪个版本的PHP呢?如果你是在windows下使用Apache+PHP的,请选择VC6版本:如果你是在windows下使用IIS+PHP的,请选择VC9版本. 二.如何选择PHP5. ...
- ShellExecute快捷键大全
文件夹,文件,网址可以创建快捷方式,控制面板 中的设置也可以创建快捷方式,下面是快捷方式的命令,使用方法:在桌面或文件夹的空白处点右键,选择新建,快捷方式,在"请键入项目的位置"输 ...
- mouseleave 和 mouseout 区别
jQuery中的mouseleave和mouseout的区别 $("li").each(function(i) { //删除的鼠标划过的显示与隐藏 ...
- AngularJS vs. jQuery,看看谁更胜一筹
http://www.apjs.net/ http://docs.angularjs.cn/api/ng/function 本文由PHP100中文网编译,转载请看文末的转载要求,谢谢合作!除非特别声明 ...
- Codeforces Round #349 (Div. 2) C. Reberland Linguistics (DP)
C. Reberland Linguistics time limit per test 1 second memory limit per test 256 megabytes input stan ...
- ASP.NET Cache 类
在查找资料的过程中.原来园子里面已经有过分析了.nopCommerce架构分析系列(二)数据Cache. 接下来是一些学习补充. 1.Nop中没有System.Web.Caching.Cache的实现 ...
- Mysql删除数据后磁盘空间未释放的解决办法【转】
转自 Mysql删除数据后,磁盘空间未释放的解决办法 - 今日头条(TouTiao.com)http://toutiao.com/a6303087712678412546/?tt_from=mobil ...