- package com.test.pagemanager;
- import java.util.ArrayList;
- import java.util.List;
- public class PageManager {
- private static List<String> names;
- {
- names = new ArrayList<String>();
- names.add(" black ");
- names.add(" black ");
- names.add(" black ");
- names.add(" black ");
- names.add(" blue ");
- names.add(" blue ");
- names.add(" blue ");
- names.add(" blue ");
- names.add(" blue ");
- names.add(" red ");
- names.add(" yellow ");
- names.add(" blue ");
- names.add(" green ");
- names.add(" blue ");
- names.add(" black ");
- names.add(" green ");
- names.add(" black ");
- }
- /**
- * 查询函数
- *
- * @param pageNum 页码
- * @param pageSize 页大小
- * @param condition 查询条件
- */
- public List<String> query(int pageNum, int pageSize, String condition) {
- List<String> tmpNames = getNames(condition);
- List<String> ret = new ArrayList<String>();
- int start = (pageNum - 1) * pageSize;
- int end = start + pageSize - 1;
- if (start >= tmpNames.size())
- return ret;
- for (int i = 0; i < tmpNames.size(); i++) {
- if (i >= start && i <= end)
- ret.add(tmpNames.get(i));
- }
- return ret;
- }
- /**
- * 虚拟查询方法
- * @param condition
- * @return
- */
- private List<String> getNames(String condition) {
- if (null == condition)
- return names;
- List<String> ret = new ArrayList<String>();
- for (int i = 0; i < names.size(); i++) {
- if (condition.equals(names.get(i)))
- ret.add(names.get(i));
- }
- return ret;
- }
- /**
- * 得到查询结果
- * @param condition
- * @return
- */
- public int getSize(String condition) {
- return getNames(condition).size();
- }
- }
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
- <jsp:useBean id="pm" scope="page" class="com.test.pagemanager.PageManager"/>
- <html><head></head><body>
- <form name="cc" action="MyJsp.jsp " method="post">
- <input type="text" name="name" value="<%=request.getParameter("name")%>" />
- <input type="submit" value="search" />
- </form>
- <pg:pager items="<%=pm.getSize(request.getParameter("name"))%>"
- index="center" maxPageItems="5" maxIndexPages="5"
- isOffset="<%=false%>"
- export="pageOffset,currentPageNumber=pageNumber" scope="request">
- <%
- int pageNum = 1;
- if (request.getParameter("pageNo") != null)
- pageNum = Integer.valueOf(request.getParameter("pageNo"));
- int pageSize = 5;
- List result = pm.query(pageNum, pageSize, request.getParameter("name"));
- %>
- <table><tr><td>result</td></tr>
- <%for (int i = 0; i < result.size(); i++) {%>
- <tr><td><%=result.get(i)%></td></tr><%}%>
- </table>
- <pg:param name="name" />
- <pg:index>
- <jsp:include page="jsptags.jsp" flush="true" />
- </pg:index>
- </pg:pager>
- </body>
- </html>
- include 的jsptags页面
- Java代码
- <%@ page session="false" contentType="text/html;charset=utf-8"%>
- <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
- <pg:first>
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>首页]</nobr></a>
- </pg:first>
- <pg:skip pages="<%=-5%>">
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>后退]</nobr></a>
- </pg:skip>
- <pg:prev>
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>前一页]</nobr></a>
- </pg:prev>
- <pg:pages>
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><%=pageNumber%></a>
- </pg:pages>
- <pg:next>
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[下一页 #<%=pageNumber%>]</nobr></a>
- </pg:next>
- <pg:skip pages="<%=5%>">
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[跳进 #<%=pageNumber%>]</nobr></a>
- </pg:skip>
- <pg:last>
- <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[尾页 #<%=pageNumber%>]</nobr></a>
- </pg:last>