jpage1_4case.java

来自「Java分页组件 JPage。 现在已经是1.5版本。铺助实现分页功能。铺助输」· Java 代码 · 共 70 行

JAVA
70
字号
package cn.heroes.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import cn.heroes.jpage.JPage;
import cn.heroes.jpage.JPageConfig;
import cn.heroes.jpage.JPageException;

public class JPage1_4Case extends HttpServlet {

	/*
	 * 本版本增加了两个功能
	 * 1 问题来源于:在MySQL数据库是即使数据库中只有三条记录,用户以limit 1, 5也能使出这三条记录来,
	 * 而在lucene里与我操作lucene的方法有关,在访问最后一页,而最后一页又不是满的的时候,超了范围而报错.
	 * 解决的方法:将JPageConfig对象的getRecordLength()得到的记录长度为完全准确的记录长度,
	 * 即在最后一页的时候小于等于每页记录数
	 * 
	 * 2 再对JPageConfig对象增加了firstIndex()方法和lastIndex()方法,来返回所要查询的记录的开始位置和末尾位置.
	 * 即对于Hits hits =
	 * {a,b,c};类似这样的数据,(0,2)能截下a和b.当getRecordStart()和getRecordLength();
	 * 能拿到1,3时,firstIndex()和lastIndex()就该是拿到0,3,前者为3,1时,后者为2,3,即firstIndex()要比getRecordStart()
	 * 少1,而getRecordLength()为firstIndex()方法和lastIndex()的差值.那么在lucene中就只要这样写:
	 * for(int i = firstIndex(); i < lastIndex();i ++) { hit.doc(i); }
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 这个是简单使用JPage的例子,不实现关于数据库查询的代码
		
		JPageConfig jpc = null;
		try {
			// 实例出一个JPage分页配置对象
			jpc = new JPageConfig();
		} catch (JPageException e) {
			e.printStackTrace();
			return;
		}
		
		// 把用户提交过来的请求HttpServletRequest设置给配置对象
		jpc.setRequest(request);
		// 程序自己写程序向数据库查询出总记录数,这段访问数据库的程序由程序员自己写上
		jpc.setRecordTotal(100);
		
		// 设置每页显示的记录数(配置文件中可设置,都不设也有默认值)
		jpc.setPageSize(10);
		
		// 表示set完毕,可以进行get操作了
		jpc.commit();

		// 分别拿到查询的开始记录位置和记录数,(开始的记录从0开始)
		System.out.println(jpc.getRecordStart());
		System.out.println(jpc.getRecordLength());
		System.out.println(jpc.firstIndex());
		System.out.println(jpc.lastIndex());
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?