* 这种方式是一次性把所有的数据取出来,再分页显示
*
* 只需传递一次数据,会有一个pageNo的参数进行传递
*
* 这种方法在jsp页面上使用很方便,但是在servlet或action里面使用时,要达到减少数据库访问的目的,则需先判断是否执行查询数据库操作,如下使用:
*
* List list = null; if(request.getParameter("pageNo") == null ||
* request.getParameter("pageNo").equals("null")){ list =
* dao.getDataFromDb();//调用自己的方法操作数据库,从数据库里面取出数据 } CutPage cp = new
* CupPage(request,list,20,"");
*
* @param request
* javax.servlet.http.HttpServletRequest对象
* @param allList
* 传进来的所有数据,第一次会放把数据放在session里面,以后在session中取数据
* @param pageSize
* 每页显示的条数
* @param url
* 页面跳转的路径,若没有特殊的参数传递,可以赋成null或"",
* 如是在aciton里面调用,并且action是继承自DispatherAction的话最好传入完整的路径
*/
public void init(HttpServletRequest request, List allList, int pageSize,
String url) {
String page_num = request.getParameter("pageNo");
this.curPageNo = parseInt(page_num, 0);// 当前页码
List list = new ArrayList();
if (allList != null) {
list = allList;
request.getSession().setAttribute("all_List", list);
} else {
list = (List) request.getSession().getAttribute("all_List");
if (list == null) {
list = new ArrayList();
}
}
this.size = list.size();// 总的数据条数
if (url != null) {
this.url = url;
} else {
this.url = request.getRequestURL() + "";