最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

各种分页代码

来源:动视网 责编:小OO 时间:2025-10-04 18:33:09
文档

各种分页代码

方法一:packagecom.web.utils;importjava.io.Serializable;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjavax.servlet.http.HttpServletRequ
推荐度:
导读方法一:packagecom.web.utils;importjava.io.Serializable;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjavax.servlet.http.HttpServletRequ
方法一:

package com.web.utils;

import java.io.Serializable;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.jdbc.core.RowCallbackHandler;

/**

 * 分页代码

 * 

 * @author Star

 * @version 1.0 2008/07/08

 */

public class CutPage implements Serializable{

    private static Log log = LogFactory.getLog(CutPage.class);

    private int curPageNo = 0; // 当前页数,从0开始

    private int size = 0; // 所有数据条数

    private String url; // 页面跳转的路径

    private List showList; // 当前页面需要显示的数据列表

    private int pageSize = 20;// 每页显示的数据条数

    private int groupSize = 1;// 多少页为一组

    private String pageNavigation;// 导航条

    /**

     * 每次通过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, String url) {

        // 上一页、下一页跳转路径

        if (url != null) {

            this.url = url;

        } else {

            this.url = request.getRequestURL() + "";

        }

     if (pageSize > 0)

            this.pageSize = pageSize;// 每页多少条记录

     if (groupSize > 0)

            this.groupSize = groupSize;

        // 当前第几页

     if (pageNo < 0) {

            this.curPageNo = 0;

        } else {

            this.curPageNo = pageNo;

        }

        int curGroup = this.curPageNo / this.groupSize + 1;

        // 是否是新的一组数据,如果是则到数据库取数据

        this.size = parseInt(request.getSession().getAttribute("page_all_size")

                + "", 0);

        if (this.curPageNo % this.groupSize == 0

                || (request.getSession().getAttribute("cur_group") != null && parseInt(

                        "" + request.getSession().getAttribute("cur_group"), 1) != curGroup)

                || this.size == 0 || request.getParameter("reload") != null) {

            request.getSession().setAttribute("cur_group", curGroup);

         if (pageNo > 0

                    && request.getSession().getAttribute("page_sql") != null) {

                sql = request.getSession().getAttribute("page_sql") + "";

            } else {

                request.getSession().setAttribute("page_sql", sql);

            }

            this.size = getTotalCount(sql);

            List list = getPageData(sql, (this.curPageNo / this.groupSize)

                    * this.pageSize * this.groupSize, this.pageSize

                    * this.groupSize);

            request.getSession().setAttribute("page_all_size", this.size);

            request.getSession().setAttribute("page_cur_list", list);

            this.setShowList(list);// 设置页面上的显示数据

        } else {

            this.setShowList((List) request.getSession().getAttribute(

                    "page_cur_list"));// 设置页面上的显示数据

        }

    }

    /**

     * 每次通过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, 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 + "条数据  ";

        // 记录数超过一页,需要分页

     if (size > pageSize) {

            if (url != null && !"".equals(url)) {

             if (url.indexOf("?") > -1) {

                    // 如果url中已经包含了其他的参数,就把curPageNo参数接在后面

                    url += "&";

                } else {

                    // 如果url中没有别的参数

                    url += "?";

                }

                // 生成一个提交页面的函数

             pageNavigation += "";

            }

            pageNavigation += "每页"

                    + pageSize

                    + "条  "

                    + "当前第页  共" + curPageNos

                    + "页  ";

            // 如果不是第一页,导航条将包含"首页"和"上一页"的连接

         if (curPageNo > 0) {

             pageNavigation += "[首页] "

                     + "[                     + (curPageNo - 1) + ");return false;\\">上一页]  ";

            } else {

                pageNavigation += "[首页] [上一页]  ";

            }

            // 如果不是最后一页,导航条将包含"末页"和"下一页"

         if (curPageNo < curPageNos - 1) {

             pageNavigation += "[                        + (curPageNo + 1)

                     + ");return false;\\">下一页] "

                     + "[                     + (curPageNos - 1) + ");return false;\\">末页]";

            } else {

                pageNavigation += "[下一页] [末页]";

            }

        }

        return pageNavigation;

    }

    /**

     * 返回分页后的总页数

     * 

     * @return pagecount int 总页数

     */

    public int getPageCount() {

        int pagecount = 0;

        if (size % pageSize == 0) {

            pagecount = size / pageSize;

        } else {

            pagecount = size / pageSize + 1;

        }

        return pagecount;

    }

    /**

     * 返回最后一页的记录数

     * 

     * @return lastpagesize int 最后一页的记录数

     */

    public int getLastPageCount() {

        int lastpagesize = 0;

        if (size % pageSize == 0) {

            lastpagesize = pageSize;

        } else {

            lastpagesize = size % pageSize;

        }

        return lastpagesize;

    }

    // 设置显示的记录列表

    private void setShowList(List list) {

        log.info("$$totalSize=" + this.size + "; curPageNo=" + this.curPageNo

                + "; pageSize=" + this.pageSize + "; groupSize="

                + this.groupSize);

        if (list == null) {

            list = new ArrayList();

        }

     if (pageSize >= list.size()) {

            this.showList = list;

        } else {

         if (groupSize <= 1) {

                groupSize = 1;

             if (pageSize * (curPageNo + 1) > list.size()) {

                 if (pageSize * curPageNo > list.size()) {

                        this.showList = list.subList(list.size() - pageSize,

                                list.size());// 返回最后一页的数据

                    } else {

                        this.showList = list.subList(pageSize * curPageNo, list

                                .size());

                    }

                } else {

                    this.showList = list.subList(pageSize * curPageNo, pageSize

                            * (curPageNo + 1));

                }

            } else {

             if (pageSize * ((curPageNo % groupSize) + 1) > list.size()) {

                    this.showList = list.subList(pageSize

                            * (curPageNo % groupSize), list.size());

                } else {

                    this.showList = list.subList(pageSize

                            * (curPageNo % groupSize), pageSize

                            * ((curPageNo % groupSize) + 1));

                }

            }

        }

    }

    public List getShowList() {

        return showList;

    }

    public int getCurPageNo() {

        return curPageNo;

    }

    public void setCurPageNo(int curPageNo) {

        this.curPageNo = curPageNo;

    }

    public int getSize() {

        return size;

    }

    public void setSize(int size) {

        this.size = size;

    }

    public String getUrl() {

        return url;

    }

    public void setUrl(String url) {

        this.url = url;

    }

    public int getPageSize() {

        return pageSize;

    }

    public void setPageSize(int pageSize) {

        this.pageSize = pageSize;

    }

    public int getGroupSize() {

        return groupSize;

    }

    public void setGroupSize(int groupSize) {

        this.groupSize = groupSize;

    }

    private int parseInt(Object s, int defaultValue) {

        if (s != null && s.toString().matches("\\\\d+")) {

            return Integer.parseInt(s.toString());

        } else {

            return defaultValue;

        }

    }

    /**

     * 拆解简单sql type:1-取from,2-取where,3-取orderby

     */

    private String parseHql(String sql, int type) {

        switch (type) {

        case 1:

         if (sql.indexOf("where") > 0) {

                return sql.substring(0, sql.indexOf("where") - 1);

         } else if (sql.indexOf("order by") > 0) {

                return sql.substring(0, sql.indexOf("order by") - 1);

            } else {

                return null;

            }

        case 2:

         if (sql.indexOf("where") > 0) {

             if (sql.indexOf("order by") > 0) {

                    return sql.substring(sql.indexOf("where"), sql

                            .indexOf("order by") - 1);

                } else {

                    return sql.substring(sql.indexOf("where"));

                }

            } else {

                return null;

            }

        case 3:

         if (sql.indexOf("order by") > 0) {

                return sql.substring(sql.indexOf("order by"));

            } else {

                return null;

            }

        }

        return null;

    }

    /**

     * 获取总记录条数

     * 

     * @param sql

     * @return

     */

    private int getTotalCount(String sql) {

        log.debug("query sql:" + sql);

        String from = parseHql(sql, 1);

        String where = parseHql(sql, 2);

        log.debug("parse sql result - from:" + from);

        log.debug("parse sql result - where:" + where);

        if (from == null) {

         log.error(">sql 无效:" + sql);

            return 0;

        }

        if (where == null)

            where = "";

        try {

            String fromTrim = from.substring(from.indexOf("from"));

            String s = "select count(1) " + fromTrim + " " + where;

            log.debug("get total count sql:" + s);

            return getSpringJdbcTemplate().queryForInt(s);

        } catch (Exception e) {

            e.printStackTrace();

            return 0;

        }

    }

    /**

     * 通过sql查询一页的数据

     * 

     * @param sql

     * @param firstResult

     * @param maxResults

     * @return

     */

    private List getPageData(final String sql, final int firstResult,

            final int maxResults) {

        log.debug("$$sql=" + sql + "; firstResult=" + firstResult

                + "; maxResults=" + maxResults);

        try {

            JdbcTemplate jt = getSpringJdbcTemplate();

            return queryForList(sql + " limit " + firstResult + 

                    + maxResults, jt);

        } catch (Exception e) {

            e.printStackTrace();

        }

        return new ArrayList();

    }

    public static List queryForList(String sql, JdbcTemplate jt) {

        log.debug("SpringJdbcTemplate:" + sql);

        final List list = new ArrayList();

        try {

            jt.query(sql, new RowCallbackHandler() {

                public void processRow(ResultSet rs) throws SQLException {

                    HashMap m = new HashMap();

                    ResultSetMetaData meta = rs.getMetaData();

                    if (meta != null) {

                        int colCount = meta.getColumnCount();

                     for (int i = 1; i <= colCount; i++) {

                            String fieldName = meta.getColumnName(i);

                            Object fieldValue = rs.getString(fieldName);

                            m.put(fieldName, fieldValue);

                            fieldName = null;

                            fieldValue = null;

                        }

                    }

                    list.add(m);

                    m = null;

                    meta = null;

                }

            });

        } catch (Exception e) {

            e.printStackTrace();

        }

        return list;

    }

    /**

    * 需要实现此方法,返回一个SpringJdbcTemplate对象

    */

    private JdbcTemplate getSpringJdbcTemplate() {

        //TODO

        return null;

    }

}

方法二:

Hibernate+struts2+spring 实现分页实例 

首先定义一个包含分页相关信息的分页类PageResultSet类: package cn.tutorinfo.pagination;import java.util.List;/** *该类描述了一个分页数据集 list中是查询的数据集合 ,pageInfo则描述了附加的页相关的信息 */public class PageResultSetT {private ListT list; /

首先定义一个包含分页相关信息的分页类PageResultSet类:

package cn.tutorinfo.pagination;

import java.util.List;

/**

 *该类描述了一个分页数据集 list中是查询的数据集合 ,pageInfo则描述了附加的页相关的信息

*/

public class PageResultSet {

private List list; //当前页的数据信息

    private PageInfo pageInfo; //当前页的信息

public List getList() {

        return list;

    }

public void setList(List list) {

        this.list = list;

    }

    public PageInfo getPageInfo() {

        return pageInfo;

    }

    public void setPageInfo(PageInfo pageInfo) {

        this.pageInfo = pageInfo;

    }

}

 其中关于页的信息类PageInfo 定义如下:

package cn.tutorinfo.pagination;

/**

 * 该类描述了分页记录集中的关于页的信息

 */

public class PageInfo {

    private int totalRow;    //总共记录数

    private int totalPage;    //总共页数

    private int currentPage = 1; //当前页,默认为1

    private int pageSize = 20;   //页的大小

    private boolean hasPrevious;

    private boolean hasNext;

    private boolean bof;

    private boolean eof;

    /*

     * 构造方法

       @param totalRow 总记录数

       @param pageSize 页的大小

       @param page 页码

     */

    public PageInfo(int totalRow, int pageSize, int page) {

        this.totalRow = totalRow;

        this.pageSize = pageSize;

        // 根据页大小和总记录数计算出总页数

        this.totalPage = countTotalPage(this.pageSize, this.totalRow);

        

        // 修正当前页

        setCurrentPage(page);

        init();

    }

    public int getTotalPage() {

        return totalPage;

    }

    public int getCurrentPage() {

        return this.currentPage;

    }

    // 修正计算当前页

    public void setCurrentPage(int currentPage) {

if(currentPage>this.totalPage){

            this.currentPage=this.totalPage;            

}else if (currentPage<1){

            this.currentPage=1;

        }

        else{

            this.currentPage=currentPage;

        }

    }

    // 获取分页大小

    public int getPageSize() {

        return pageSize;

    }

    // 设置分页大小

    public void setPageSize(int pageSize) {

        this.pageSize = pageSize;

    }

    // 获取当前页记录的开始索引

    public int getBeginIndex() {

        int beginIndex = (currentPage - 1) * pageSize; // 索引下标从0开始

        return beginIndex;

    }

    // 计算总页数

    public int countTotalPage(int pageSize, int totalRow) {

        int totalPage = totalRow % pageSize == 0 ? totalRow / pageSize : totalRow / pageSize + 1;

        return totalPage;

    }

    // 返回下一页的页码

    public int getNextPage() {

     if (currentPage + 1 >= this.totalPage) { // 如果当前页已经是最后页 则返回最大页

            return this.totalPage;

        }

        return currentPage + 1; 

    }

    // 返回前一页的页码

    public int getPreviousPage() {

     if (currentPage - 1 <= 1) {

            return 1;

        } else {

            return currentPage - 1;

        }

    }

    public boolean isHasPrevious() {

        return hasPrevious;

    }

    public boolean isHasNext() {

        return hasNext;

    }

    public boolean isBof() {

        return bof;

    }

    public boolean isEof() {

        return eof;

    }

    public boolean hasNext() {

     return currentPage < this.totalPage;

    }

    public boolean hasPrevious() {

     return currentPage > 1;

    }

    public boolean isFirst() {

        return currentPage == 1;

    }

    public boolean isLast() {

     return currentPage >= this.totalPage;

    }

    // 初始化信息

    private void init() {

        this.hasNext = hasNext();

        this.hasPrevious = hasPrevious();

        this.bof = isFirst();

        this.eof = isLast();

    }

}

Dao接口层代码:

package cn.tutorinfo.dao;

import java.util.List;

import cn.tutorinfo.domain.Teacher;

public interface TeacherDao {

    //分页查询显示

public List queryByPage(String hql,int beginIndex,int pageSize);

    //查询的结果记录总数

    public int queryRowCount(final String hql);

DAO实现层代码:

/*

     * 分页查询显示

     * @param hql查询的的hql语句

     * @param beginIndex 查询记录的起始索引位置

     * @param pageSize 一次查询记录个数

* @return List

     */

    @SuppressWarnings("unchecked")

public List queryByPage(String hql, int beginIndex, int pageSize) {

        Session session = HibernateSessionFactory.getSessionFactory().getCurrentSession();

        Transaction transaction = null;

        try {

            transaction = session.beginTransaction();

            Query query = session.createQuery(hql);

            query.setFirstResult(beginIndex);

            query.setMaxResults(pageSize);

         List list = query.list();

            transaction.commit();

            return list;

        } catch (Exception e) {

            if (null != transaction) {

                transaction.rollback();

                e.printStackTrace();

            }

        }

        return null;

    }

      / / 查询指定HQL的结果记录总数

    public int queryRowCount(final String hql) {

        Session session=HibernateSessionFactory.getSessionFactory().getCurrentSession();

        Transaction transaction=null;

        try{

            transaction=session.beginTransaction();

            Query query=session.createQuery(hql);

            int result=query.list().size();  //计算个数

            transaction.commit();

            return result;

        }catch (Exception e){

            if (null!=transaction){

                transaction.rollback();

                e.printStackTrace();

            }

        }

        return 0;

    }

 

业务逻辑层接口:

package cn.tutorinfo.service;

import java.util.List;

import cn.tutorinfo.domain.Teacher;

import cn.tutorinfo.pagination.PageResultSet;

public interface TeacherService {

    

    /*

     * @param pagesize 每页大小

     * @param page 要显示数据的页

     * @return 包含结果集和分页信息的数据集

     */

public PageResultSet queryByPage(int pageSize,int Page);

}

 

业务逻辑实现类:

//分页获取记录值

public PageResultSet queryByPage(int pageSize, int page) {

        

                 

        String hql = "From Teacher";  //查询HQL语句

        int totalRow = teacherDao.queryRowCount(hql); // 计算总记录个数

        PageInfo pageinfo = new PageInfo(totalRow, pageSize, page);

        

        //获取该页的记录

     List list = teacherDao.queryByPage(hql, pageinfo.getBeginIndex(), pageinfo.getPageSize());

    

     PageResultSet pageResultSet = new PageResultSet();

        pageResultSet.setList(list);

        pageResultSet.setPageInfo(pageinfo);

        return pageResultSet;

    }

 

struts2 的action中调用业务逻辑实现类来获取页的信息:

package cn.tutorinfo.struts;

import cn.tutorinfo.domain.Teacher;

import cn.tutorinfo.pagination.PageResultSet;

import cn.tutorinfo.service.TeacherService;

import com.opensymphony.xwork2.ActionSupport;

public class ListTeacherAction extends ActionSupport {

    private static final long serialVersionUID = -7735757614996395820L;

    private int page;  //接受传递的页码参数

private PageResultSet pageResultSet;

    private TeacherService service; // 业务逻辑组件类由Spring注入

    public int getPage() {

        return page;

    }

    public void setPage(int page) {         this.page = page;

    }

public PageResultSet getPageResultSet() {

        return pageResultSet;

    }

public void setPageResultSet(PageResultSet pageResultSet) {

        this.pageResultSet = pageResultSet;

    }

    public void setService(TeacherService service) {

        this.service = service;

    }

    @Override

    public String execute() throws Exception {        

        this.pageResultSet = service.queryByPage(15,page); // 显示第page页,显示15条记录

        return SUCCESS;

    }

}

 

 

业务逻辑实现类中的Dao和Action中的业务逻辑组件类都由spring注入.

 

okay,以上基本完成.前台jsp页面来显示经过action处理后的分页信息:

        

        

        

        

        

        

        

        

        

        

        

        

编号讲师姓名性别讲师类别讲师介绍基本操作
讲师详细介绍修改 |

删除

        

        

            

        

        

选择: 全选 - 反选 - 不选

                                                     页码:   /     

                                                             首页    第一页

首页 ">上一页

                   

                                                         下一页   末页

">下一页 ">末页

        

 

调用: http://localhost:8080/appName/listTeacher.action?page=2

 

则显示所有教师信息中的第二页中的全部数据

方法三:

首先要定义四个变量:

int pageSize:每页显示多少条记录

int pageNow:希望显示第几页

int pageCount:一共有多少页

int rowCount:一共有多少条记录

说明:

pageSize是指定的 pageNow是用户选择的

rowCount是计算出来的 该计算式为

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

(技巧:

数据库插入:

insert into 表名(字段1,2。。)select 字段1,2,...from 表名

)

查询语句

select top pageSize字段名列表from表名where id not in

(select top pageSize*(pageNow-1)id from 表名)

以我们前面的users表为例,显示第二页,该查询语句就是:

select top 3 * from users where userId not in(select top 3 userId from users)

(select top 3 userId from users):选出这个表的前三条 前面再选三条

用户信息列表

<%

//定义四个分页会用到的变量

int pageSize=3;

int pageNow=1;//默认显示第一页

int rowCount=0;//该值从数据库中查询

int pageCount=0;//该值是通过pageSize和rowCount

//接受用户希望显示的页数(pageNow)

String s_pageNow=request.getParameter("pageNow");

if(s_pageNow!=null){

//接收到了pageNow

pageNow=Integer.parseInt(s_pageNow);

}

//查询得到rowCount

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;dataBaseName=System

Statement sm=ct.createStatement();

ResultSet rs=sm.exeuteQuery("select count(*) form users ");

if(rs.next()){

rowCount=rs.getInt(1);

}

//计算pageCount

if(rowCount%pageSize==0){

pageCount=rowCount/pageSize;

}else{

pageCount=rowCount/pageSize+1;

}

//查询出需要显示的记录

rs=sm.exeuteQuery("select top "+pageSize

+" * from users where userId not in(select top "

+pageSize*(pageNow-1)+" userId from users) ");

%>

//显示

<%

while(rs.next()){

%>

<%}%>

用户ID用户名字密码电邮级别
<%=rs.getInt(1)%><%=rs.getString(2)%><%=rs.getString(3)%><%=rs.getString(4)%><%=rs.getInt(5)%>

<%

//上一页

if(pageNow!=1){

out.println("上一页");

}

//显示超链接

for(int i=1;i<=pageCount;i++){

out.println("["+i+"]");

}

//下一页

if(pageNow!=pageCount){

out.println("下一页");

}

%>

方法四:

<%

BasetableFactory bf=BasetableFactory.getInstance(); 

Collection coll=bf.ListSoft(1000,"ORDER BY uptime DESC"); //此处为从数据库中取的数据,函数需要改进,根据页数得到,如果只是实现的是假分页,则在集合显示时设置计数器,根据计数器来展示的内容,链接不需要传递页数。

int count=bf.getPageCount(); 

String pageCount=(String)session.getPageCount();

int pagecount=Integer.paseInt(pageCount);

if(coll==null||coll.size()<0){%>

<%

}else{ 

   Iterator it=coll.iterator(); 

  while(it.hasNext()){ 

  Soft s=(Soft)it.next(); 

%>

<%

if(pagecount>1)

%>

<% else {}% >

<%

if(pagecount%>

>

<% else {}% >

<%}%>

No Product!
Name: <%=s.getName()%> <%String path=bf.SearchHead("WHERE iid='"+s.getIid()+"'").getPath();if(path==null){out.print("无图片");}else{out.print("");}%>
Version: <%=s.getEdition()%>
Platform: <%=s.getEnvironment()%>
Prices: <%=s.getPrice()%>
Category: <%=bf.SearchSsort("WHERE sid="+s.getSid()).getName()%>
Introduce: <%=s.getIntroduce()%>


  • 热门焦点

最新推荐

猜你喜欢

热门推荐

Top