pager taglib简单解析,够实用

来源:互联网 发布:google for mac 编辑:程序博客网 时间:2024/04/29 00:04

本示例思路是这样的:从servlet到数据库取分页信息,然后响应到jsp页面,当点击jsp页面的页码(1,2,3,4.......)时,再请求servlet(如何加包去百度,我不说)

这是servlet代码

<pre name="code" class="java">package com.leo.servlet;import java.io.IOException;import java.net.URLDecoder;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.leo.dao.PlateDao;import com.leo.dao.UserDao;import com.leo.entity.Page_Plate;import com.leo.entity.User;/** * Servlet implementation class PagerPlateServlet */@WebServlet("/PagerPlateServlet")public class PagerPlateServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String pager_offset =  request.getParameter("pager.offset");//我用的是mysql的limit分页需要两个参数String maxPageItems =  request.getParameter("maxPageItems");int start;//limit语句的起始参数 int dataNumber;//每页显示数据条数if(pager_offset==null||maxPageItems==null){//当没有jsp页面时无法点击页码。所以要有个初始值start=0; dataNumber=3; }else{ start = Integer.parseInt(pager_offset); dataNumber = Integer.parseInt(maxPageItems); } PlateDao plateDao = new PlateDao(); Page_Plate page = plateDao.getPage(start,dataNumber);//这是查询的分页结果,,,,,,Page_Plate是自己定义的分页实体类, request.setAttribute("page", page); request.getRequestDispatcher("/views/main.jsp").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }

jsp页面代码

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%><%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"  %><!-- 加包--><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><table><tr><td>板块id</td>                                                                <td>板块名称</td></tr><c:forEach var="plate" items="${page.plates }">  <tr>                                <td>${plate.id}</td>                                <td>${plate.plate_title}</td></tr></c:forEach></table>                    // pg:pager的url属性是要提交的位置,这里就是我们上面所说的Servlet<div align="center">//下面的分页代码,只需要你传2个值就是items属性值,(也就是所查表的总记录数,以便显示分出多少页)和url。其他的分页框架自己写好的<pg:pager items="${page.total}" url="" maxPageItems="${3 }" maxIndexPages="${3}" export="currentPageNumber=pageNumber">              <pg:param name="maxPageItems" value="${3 }"></pg:param>//这个是为了传limit ?,?分页语句的第二个参数给servlet,            <!-- 首页 -->                                           //  还有第一个参数是当你点击页码时会在url里自动传            <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 }">  //(当点击的页码是当前页码时为红色数字,不显示为链接)就这么写不用管,                      <a style="color:red;">${pageNumber }</a>                    </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>       </div></body></html>

这两个属性:

maxPageItems="${3 }" maxIndexPages="${3}"

maxPageItems表示每页显示数据的条数,我写的是3;

maxIndexPages表示每次显示的页码个数,比如是  1  2  3  4  5  6   六个还是1   2   3   4   5   6   7   8  八个,我写的是3个

这两个属性如果不加也可以,默认值是10




0 0
原创粉丝点击