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 + -
显示快捷键?