iton 里面调用,并且 action 是继承自 DispatherAction 的话最 好传入完整的路径 */ public void init(HttpServletRequest request, String sql, int pageSize, int groupSize, String url) { // 当前第几页
String curPage = request.getParameter("pageNo"); init(request, sql, pageSize, groupSize, parseInt(curPage, -1), url); } /** * 每次通过 sql 语句从数据库里面分组取出需要显示的数据 * * @param request * javax.servlet.http.HttpServletRequest 对象 * @param sql * String
查询数据库的 sql 语句 * @param pageSize * int 每页显示的条数 * @param groupSize * int 分成多少组 * @param url * String 页面跳转的路径,若没有特殊的参数传递,可以传入 null 或"", * 如是在 aciton 里面调用,并且 action 是继承自 DispatherAction 的话最 好传入完整的路径 */ public void init(HttpServletRequest request, String sql, int pageSize, int groupSize, int pageNo) { init(request, sql, pageSize, groupSize, pageNo, ""); } /** * 这种方式是一次性把所有的数据取出来,再分页显示 * * 只需传递一次数据,会有一个 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() + ""; } if (pageSize > 0) this.pageSize = pageSize;// 每页显示的条数 setShowList(list);// 设置显示数据 } /** * 返回分页导航条 * * @return pageNavigation String 分页导航条 */ public String getPageNavigation() { // 最终返回的分页
导航条
String pageNavigation = "共有" + size + "条数据&;nbsp;&;nbsp;"; // 记录数超过一页,需要分页 if (size > pageSize) { if (url != null &;&; !"".equals(url)) { if (url.indexOf("?") > -1) { // 如果 url 中已经包含了其他的参数,就把 curPageNo 参数接在后面 url += "&;"; } else { // 如果 url 中没有别的参数 url += "?"; } // 生成一个提交页面的函数 pageNavigation += "
"; } pageNavigation += "每页" + pageSize + "条&;nbsp;&;nbsp;" + " 当 前 第