jsp Paging

本文介绍了一个简单的分页查询实现方案,通过Java代码演示了如何基于一个包含多种颜色名称的列表进行分页显示,并且允许用户输入特定的颜色名称来筛选查询结果。此外,还展示了如何在JSP页面中集成分页组件以实现友好的分页导航。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1.  package com.test.pagemanager;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class PageManager {
  5.     private static List<String> names;
  6.     {
  7.         names = new ArrayList<String>();
  8.         names.add(" black ");
  9.         names.add(" black ");
  10.         names.add(" black ");
  11.         names.add(" black ");
  12.         names.add(" blue ");
  13.         names.add(" blue ");
  14.         names.add(" blue ");
  15.         names.add(" blue ");
  16.         names.add(" blue ");
  17.         names.add(" red ");
  18.         names.add(" yellow ");
  19.         names.add(" blue ");
  20.         names.add(" green ");
  21.         names.add(" blue ");
  22.         names.add(" black ");
  23.         names.add(" green ");
  24.         names.add(" black ");
  25.     }
  26.     /**
  27.      * 查询函数
  28.      * 
  29.      * @param pageNum    页码
  30.      * @param pageSize   页大小
  31.      * @param condition  查询条件
  32.      */
  33.     public List<String> query(int pageNum, int pageSize, String condition) {
  34.         List<String> tmpNames = getNames(condition);
  35.         List<String> ret = new ArrayList<String>();
  36.         int start = (pageNum - 1) * pageSize;
  37.         int end = start + pageSize - 1;
  38.         if (start >= tmpNames.size())
  39.             return ret;
  40.         for (int i = 0; i < tmpNames.size(); i++) {
  41.             if (i >= start && i <= end)
  42.                 ret.add(tmpNames.get(i));
  43.         }
  44.         return ret;
  45.     }
  46.     /**
  47.      * 虚拟查询方法
  48.      * @param condition
  49.      * @return
  50.      */
  51.     private List<String> getNames(String condition) {
  52.         if (null == condition)
  53.             return names;
  54.         List<String> ret = new ArrayList<String>();
  55.         for (int i = 0; i < names.size(); i++) {
  56.             if (condition.equals(names.get(i)))
  57.                 ret.add(names.get(i));
  58.         }
  59.         return ret;
  60.     }
  61.     /**
  62.      * 得到查询结果
  63.      * @param condition
  64.      * @return
  65.      */
  66.     public int getSize(String condition) {
  67.         return getNames(condition).size();
  68.     }
  69. }
  70.     
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>
  3. <jsp:useBean id="pm" scope="page" class="com.test.pagemanager.PageManager"/>
  4. <html><head></head><body>
  5.     <form name="cc" action="MyJsp.jsp " method="post">
  6.         <input type="text" name="name" value="<%=request.getParameter("name")%>" />
  7.         <input type="submit" value="search" />
  8.     </form>
  9.     <pg:pager items="<%=pm.getSize(request.getParameter("name"))%>"
  10.         index="center" maxPageItems="5" maxIndexPages="5"
  11.         isOffset="<%=false%>"
  12.         export="pageOffset,currentPageNumber=pageNumber" scope="request">
  13.         <%
  14.             int pageNum = 1;
  15.             if (request.getParameter("pageNo") != null)
  16.                 pageNum = Integer.valueOf(request.getParameter("pageNo"));
  17.             int pageSize = 5;
  18.             List result = pm.query(pageNum, pageSize, request.getParameter("name"));
  19.         %>
  20.         <table><tr><td>result</td></tr>
  21.             <%for (int i = 0; i < result.size(); i++) {%>
  22.             <tr><td><%=result.get(i)%></td></tr><%}%>
  23.         </table>
  24.         <pg:param name="name" />
  25.         <pg:index>
  26.             <jsp:include page="jsptags.jsp" flush="true" />
  27.         </pg:index>
  28.     </pg:pager>
  29.     </body>
  30. </html>
  31. include 的jsptags页面 
  32. Java代码 
  33. <%@ page session="false" contentType="text/html;charset=utf-8"%>   
  34. <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg"%>   
  35. <pg:first>   
  36.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>首页]</nobr></a>   
  37. </pg:first>   
  38. <pg:skip pages="<%=-5%>">   
  39.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>后退]</nobr></a>   
  40. </pg:skip>   
  41. <pg:prev>   
  42.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[#<%=pageNumber%>前一页]</nobr></a>   
  43. </pg:prev>   
  44. <pg:pages>   
  45.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><%=pageNumber%></a>   
  46. </pg:pages>   
  47. <pg:next>   
  48.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[下一页 #<%=pageNumber%>]</nobr></a>   
  49. </pg:next>   
  50. <pg:skip pages="<%=5%>">   
  51.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[跳进 #<%=pageNumber%>]</nobr></a>   
  52. </pg:skip>   
  53. <pg:last>   
  54.     <a href="<%=pageUrl%>&pageNo=<%=pageNumber%>"><nobr>[尾页 #<%=pageNumber%>]</nobr></a>   
  55. </pg:last>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值