日期:2014-05-16  浏览次数:20430 次

JSPTags.com的 分页标签 Pager Tag 的使用
JSPTags.com 提供了一套分页标签 使用起来很方便里面包含了很多主流网站分页的实现例如 google yahoo 等等很久以前在项目中使用过,今天顺便整理了一下使用步骤: 1:下载示例代码 [url] http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.war[/url] 2:在适当的位置上找到pager-taglib.jar添加到你web工程的{$webapp}/WEB-INF/lib目录下 找到pager-taglib.tld 文件添加到你 web工程的{$webapp}/WEB-INF 目录下 3:虚拟的业务逻辑类
 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();
	}

}



下面是index.jsp页面

<%@ 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>


下面是index.jsp include 的jsptags页面

<%@ 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>[#<%=pa