jsp分页-封装

 

jsp 分页封装

网上找了些代码 自己成功用在项目中 把所有代码贴出来
需要引用注明:bright82@163.com
1. Page.java
package cn.loen.platform.util.page;
import java.util.List;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: loen</p>
 *
 * @author bright
 * @version 1.0
 */
public interface Page {
    public static int PAGE_SIZE = 15;
    /**
     * 是否是首页(第一页),第一页页码为1
     *
     * @return 首页标识
     */
    public boolean isFirstPage();
    /**
     * 是否是最后一页
     *
     * @return 末页标识
     */
    public boolean isLastPage();
    /**
     * 是否有下一页
     *
     * @return 下一页标识
     */
    public boolean hasNextPage();
    /**
     * 是否有上一页
     *
     * @return 上一页标识
     */
    public boolean hasPreviousPage();
    /**
     * 获取最后一页页码,也就是总页数
     *
     * @return 最后一页页码
     */
    public int getLastPageNumber();
    /**
     * 当前页包含的数据
     *
     * @return 当前页数据源
     */
    public List getThisPageElements();
  public void setThisPageElements(List ls);
    /**
     * 总的数据条目数量,0表示没有数据
     *
     * @return 总数量
     */
    public int getTotalNumberOfElements();
    /**
     * 获取当前页的首条数据的行编码
     *
     * @return 当前页的首条数据的行编码
     */
    public int getThisPageFirstElementNumber();
    /**
     * 获取当前页的末条数据的行编码
     *
     * @return 当前页的末条数据的行编码
     */
    public int getThisPageLastElementNumber();
    /**
     * 获取下一页编码
     *
     * @return 下一页编码
     */
    public int getNextPageNumber();
    /**
     * 获取上一页编码
     *
     * @return 上一页编码
     */
    public int getPreviousPageNumber();
    /**
     * 每一页显示的条目数
     *
     * @return 每一页显示的条目数
     */
    public int getPageSize();
    /**
     * 当前页的页码
     *
     * @return 当前页的页码
     */
    public int getThisPageNumber();
}

 

2.PageImp.java

package cn.loen.platform.util.page;

import java.util.List;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: loen</p>
 *
 * @author bright
 * @version 1.0
 */
public class PageImp implements Page {

    private List elements;

    private int pageSize;

    private int pageNumber;

    private int totalElements;

    /**
     * 构建Page对象,完成数据的分页处理
     *
     * @param elements
     *            List数据源
     * @param totalElements
     *            记录总数
     * @param pageNumber
     *            当前页编码,从1开始,如果传的值为Integer.MAX_VALUE表示获取最后一页。
     *            如果你不知道最后一页编码,传Integer.MAX_VALUE即可。如果当前页超过总页数,也表示最后一页。
     *            这两种情况将重新更改当前页的页码为最后一页编码。
     * @param pageSize
     *            每一页显示的条目数
     */
    public PageImp(List elements, int totalElements, int pageNumber,
                         int pageSize) {
        this.elements = elements;
        this.totalElements = totalElements;
        this.pageNumber = pageNumber;
        this.pageSize = pageSize;
        if (this.pageNumber == Integer.MAX_VALUE ||
            this.pageNumber > getLastPageNumber())
            this.pageNumber = getLastPageNumber();
    }

    public boolean isFirstPage() {       
        return getThisPageNumber() == 1;
    }

    public boolean isLastPage() {      
        return getThisPageNumber() >= getLastPageNumber();
    }

    public boolean hasNextPage() {       
        return getLastPageNumber() > getThisPageNumber();
    }

    public boolean hasPreviousPage() {      
        return getThisPageNumber() > 1;
    }

    public int getLastPageNumber() {       
        return totalElements % this.pageSize == 0 ? totalElements
                / this.pageSize : totalElements / this.pageSize + 1;
    }

    public List getThisPageElements() {     
        return elements;
    }

    public int getTotalNumberOfElements() {       
        return totalElements;
    }

    public int getThisPageFirstElementNumber() {       
        return (getThisPageNumber() - 1) * getPageSize() + 1;
    }

    public int getThisPageLastElementNumber() {      
        int fullPage = getThisPageFirstElementNumber() + getPageSize() - 1;
        return getTotalNumberOfElements() < fullPage ? getTotalNumberOfElements()
                : fullPage;
    }

    public int getNextPageNumber() {      
        int nextPage = getThisPageNumber() + 1;
        return nextPage < getLastPageNumber() ? nextPage : getLastPageNumber();
    }

    public int getPreviousPageNumber() {       
        int previousPage = getThisPageNumber() - 1;
        return 1 < previousPage ? previousPage : 1;
    }

    public int getPageSize() {       
        return pageSize;
    }

    public int getThisPageNumber() {      
        return pageNumber;
    }

  public void setThisPageElements(List ls){
   elements = ls;
  }

}

 

3.QueryHandler .java  For Hibernate HQL查询

package cn.loen.platform.util.query;

import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Query;
import cn.loen.platform.util.page.PageImp;
import cn.loen.platform.util.page.Page;
import cn.loen.platform.common.BaseDAO;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: loen</p>
 *
 * @author bright
 * @version 1.0
 */
public class QueryHandler {

    private static QueryHandler instance = new QueryHandler();

    public static QueryHandler instance() {
        return instance;
    }

    private QueryHandler() {
    }

    /**
     * 得到记录总数
     * @param hql String
     * @param values Object[]
     * @return int
     * @throws HibernateException
     */
    public int getTotalCount(String hql, Object[] values) throws
            HibernateException {
        Integer count = new Integer(0);
        /**
         * 去掉排序
         */
        int sql_orderby = hql.indexOf("order by");
        if(sql_orderby>0)
        hql = hql.substring(0,sql_orderby);
        /**
         * 去掉条件
         */
        hql=(hql.split("from"))[1];
        StringBuffer countStr = new StringBuffer("select count(*) from");
        countStr.append(hql);
        Session session = null;
        List list = null;
        try {
            session = BaseDAO.getSession();
            Query query = session.createQuery(countStr.toString());
            for (int i = 0; i < values.length; i++) {
                query.setParameter(i, values[i]);
            }
            list = query.list();

            if (!list.isEmpty())
                count = (Integer) list.get(0);
            return count.intValue();

        } finally {
            session.close();
        }
    }

    /**
     * 按页数得到需要记录数
     * @param hql String
     * @param values Object[]
     * @param pageNo int
     * @param pageSize int
     * @return List
     * @throws HibernateException
     */
    public List query(String hql, Object[] values, int pageNo, int pageSize) throws
            HibernateException {
        List list = null;
        Session session = null;
        try {
            session = BaseDAO.getSession();
            Query query = session.createQuery(hql);
            for (int i = 0; i < values.length; i++) {
                query.setParameter(i, values[i]);
            }
            query.setFirstResult((pageNo - 1) * pageSize);
            query.setMaxResults(pageSize);

            return query.list();
        } finally {
            session.close();
        }
    }

    /**
     * 取得全部记录
     * @param hql String
     * @param values Object[]
     * @return List
     * @throws HibernateException
     */
    public List queryAll(String hql, Object[] values) throws HibernateException {
        List list = null;
        Session session = null;
        try {
            session = BaseDAO.getSession();
            Query query = session.createQuery(hql);
            for (int i = 0; i < values.length; i++) {
                query.setParameter(i, values[i]);
            }
            return query.list();
        } finally {
            session.close();
        }
    }

 public Page queryByPage(int pageNumber, int pageSize, Object[] values,
   String hql) {
  Page page = null;
  try {
   int total = QueryHandler.instance().getTotalCount(hql, values);
   List querylist = QueryHandler.instance().query(hql, values,
     pageNumber, pageSize);
   page = new PageImp(querylist, total, pageNumber, pageSize);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return page;
 }
}

 

4.1  SQLQueryHandler .java  sql语法查询处理

package cn.loen.platform.util.query;
import org.hibernate.Session;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;
import cn.loen.platform.common.BaseDAO;
import cn.loen.platform.util.page.Page;
import cn.loen.platform.util.page.PageImp;
import cn.loen.platform.util.DateUtil;
import cn.loen.golf.course.po.Course;
import cn.loen.golf.course.action.CourseSearchActionForm;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: loen</p>
 *
 * @author bright
 * @version 1.0
 */
public class SQLQueryHandler {
    private static SQLQueryHandler handler = new SQLQueryHandler();

    public static SQLQueryHandler instance() {
        return handler;
    }
    private SQLQueryHandler() {
    }

    /**
     * 分页查询
     * @param pageNumber int
     * @param pageSize int
     * @param values Object[]
     * @param sql String
     * @param helper IResultSetHelper
     * @return Page
     */
    public Page queryByPage(int pageNumber, int pageSize, Object[] values,
                            String sql, IResultSetHelper helper) {
        Page page = null;
        Session session = null;
        Connection con = null;
        try {
            session = BaseDAO.getSession();
            con = session.connection();//通过Hibernate获得Connection jdbc自己写
            int total = getTotalCount(con, sql, values);
            List querylist = query(con, sql, values, pageNumber, pageSize,
                                   helper);
            page = new PageImp(querylist, total, pageNumber, pageSize);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.close();
        }
        return page;
    }

    /**
     * 取记录总数
     * @param con Connection
     * @param sql String
     * @param values Object[]
     * @return int
     * @throws SQLException
     */
    private int getTotalCount(Connection con, String sql, Object[] values) throws
            SQLException {
        System.out.println(sql);
        int count = 0;
        String[] sql1 = sql.split("from");//Mysql不支持count子查询 故重新构造
        sql = sql1[1];
        StringBuffer countStr = new StringBuffer(
                "select count(*) as rowcount from");
//        StringBuffer countStr = new StringBuffer(
//                "select count(*) as rowcount from (");
        int sql_orderby = sql.indexOf("order by");
        if (sql_orderby > 0) {
            countStr.append(sql.substring(0, sql_orderby));
        } else {
            countStr.append(sql);
        }
//        countStr.append(")");

        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = con.prepareStatement(countStr.toString());
            System.out.println(countStr);
            for (int i = 0; i < values.length; i++) {
                if (values[i] instanceof java.util.Date) {
                    values[i] = DateUtil.getSqlDate((java.util.Date) values[i]);
                }
                //ps.setObject(i + 1, values[i]);
                ps.setObject(2 * (i + 1) - 1, values[i]);
                ps.setObject(2 * (i + 1), values[i]);
            }
            rs = ps.executeQuery();
            if (rs.next()) {
                count = rs.getInt("rowcount");
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
        }
        return count;
    }
    /**
     * Oracle的查询记录集方法
     * @param con Connection
     * @param sql String
     * @param values Object[]
     * @param pageNo int
     * @param pageSize int
     * @param helper IResultSetHelper
     * @return List
     * @throws SQLException
     */
    private List oracleQuery(Connection con, String sql, Object[] values,
                             int pageNo,
                             int pageSize, IResultSetHelper helper) throws
            SQLException {
        List list = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            StringBuffer pageStr = new StringBuffer();
            pageStr.append(
                    "select * from ( select row_.*, rownum rownum_ from ( ");
            pageStr.append(sql);
            pageStr.append(" ) row_ where rownum <= ");
            pageStr.append(pageSize * pageNo);
            pageStr.append(" ) where rownum_ > ");
            pageStr.append(pageSize * (pageNo - 1));
            for (int i = 0; i < values.length; i++) {
                if (values[i] instanceof java.util.Date) {//把java日期转为sql日期类型
                    values[i] = DateUtil.getSqlDate((java.util.Date) values[i]);
                }
                //ps.setObject(i + 1, values[i]);
                ps.setObject(2 * (i + 1) - 1, values[i]);
                ps.setObject(2 * (i + 1), values[i]);
            }
            rs = ps.executeQuery();
            list = helper.prepareListFromResultSet(rs);
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
        }
        return list;
    }

    /**
     * 按取得查询结果记录Mysql方法 其它数据库方法另外写
     * @param con Connection
     * @param sql String
     * @param values Object[]
     * @param pageNo int
     * @param pageSize int
     * @param helper IResultSetHelper
     * @return List
     * @throws SQLException
     */
    private List query(Connection con, String sql, Object[] values, int pageNo,
                       int pageSize, IResultSetHelper helper) throws
            SQLException {
        List list = null;
        String myPageSQL = sql + " limit " + pageSize * (pageNo - 1) + "," +
                           pageSize * pageNo; //关键代码
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = con.prepareStatement(myPageSQL);
            System.out.println(myPageSQL);
            for (int i = 0; i < values.length; i++) {
                if (values[i] instanceof java.util.Date) {
                    values[i] = DateUtil.getSqlDate((java.util.Date) values[i]);
                }
                //ps.setObject(i + 1, values[i]); 此中方法在servlet里面控制查询参数调用
                ps.setObject(2 * (i + 1) - 1, values[i]); //利用sql语句控制查询条件调用
                ps.setObject(2 * (i + 1), values[i]);
            }
            rs = ps.executeQuery();
            list = helper.prepareListFromResultSet(rs);
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (ps != null) {
                ps.close();
            }
        }
        return list;
    }
    /**
     * 测试
     * @param args String[]
     */
    public static void main(String[] args) {
        BaseDAO.initialize();
        SQLQueryHandler handler = SQLQueryHandler.handler;
        int pageNumber = 1;
        int pageSize = 5;
        Object[] values = {"", "434", ""};
        String hql = "select c.courseid,c.coursename,c.provincecode,c.citycode from gf_course as c where c.isdisable='" +
                     Course.DISABLE + "'  and (?='' or coursename like CONCAT('%',?,'%')) and (?='' or provincecode=?) and (?='' or citycode=?)";
        Page p = handler.queryCourseByPage(pageNumber, pageSize, values, hql);
        System.out.println(p.getPageSize());
    }
    /**
     * Service调用方法测试
     * @param pageNumber int
     * @param pageSize int
     * @param values Object[]
     * @param hql String
     * @return Page
     */
    private Page queryCourseByPage(int pageNumber, int pageSize,
                                   Object[] values, String hql) {
        final List items = new ArrayList();
        return SQLQueryHandler.instance().queryByPage(pageNumber, pageSize,
                values, hql, new IResultSetHelper() {
            //2.把List封装到Page
            public List prepareListFromResultSet(ResultSet rs) throws
                    SQLException {
                //1.把rs封装到List
                while (rs.next()) {
                    List list = new ArrayList();
                    list.add("1111");
                    list.add("222");                   
                    CourseSearchActionForm cs = new CourseSearchActionForm();
                    cs.setCoursename(rs.getString("coursename"));
                    cs.setProvincecode(rs.getString("provincecode"));
                    cs.setCitycode(rs.getString("citycode"));
                    cs.setCourseid(rs.getString("courseid"));
                    cs.setPriceList(list);
                    items.add(cs);
                }
                return items;
            }
        });
    }
}

 

4.2 IResultSetHelper.java 具体实现见上个类的测试调用代码

package cn.loen.platform.util.query;

import java.util.List;
import java.sql.ResultSet;
import java.sql.SQLException;

public interface IResultSetHelper {
    /**
     * SQL查询的结果集转化成LIST
     * @param rs ResultSet
     * @return List
     * @throws SQLException
     */
    public List prepareListFromResultSet(ResultSet rs) throws SQLException;

}

 

5.Serivce调用

public class CourseService implements ICourseService {
    public CourseService() {
    }

 /**
     * 根据模糊球场名,球洞,省份,城市代码来查询球场以及价格信息
     * @return Page

     */
    public Page findCoursesPricesByuser(int pageNumber, int pageSize,
                                        Object[] values) throws
            BusinessException {
        String hql = "select c.courseid,c.coursename,c.provincecode,c.citycode from gf_course as c where c.isdisable='" +
                     Course.DISABLE + "'  and (?='' or coursename like CONCAT('%',?,'%')) and (?='' or provincecode=?) and (?='' or citycode=?)";
        final List items = new ArrayList();
        try {
            return SQLQueryHandler.instance().queryByPage(pageNumber,
                    pageSize,
                    values, hql, new IResultSetHelper() {
                public List prepareListFromResultSet(ResultSet rs) throws
                        SQLException {
                    CourseService service = new CourseService();
                    while (rs.next()) {
                        List list = service.findPricesByCourseid(rs.
                                getString("courseid"));
                        CourseSearchActionForm cs = new
                                CourseSearchActionForm();
                        cs.setCoursename(rs.getString("coursename"));
                        cs.setProvincecode(rs.getString("provincecode"));
                        cs.setCitycode(rs.getString("citycode"));
                        cs.setCourseid(rs.getString("courseid"));
                        cs.setPriceList(list);
                        items.add(cs);
                    }
                    return items;
                }
            });
        } catch (SQLException ex) {
            throw new BusinessException("数据库异常!!");
        }
    }

    /**
     * jdbc查询 通过球场id查询详细价格列表
     * @param courseid String
     * @return List
     */
    private List findPricesByCourseid(String courseid) throws SQLException {
        ResultSet rs = getICourseDAO().findPricesByCourseid(courseid);
        List li = new ArrayList();
        while (rs.next()) {
            CoursePrice cp = new CoursePrice();
            cp.setWkpriceid(rs.getString("wkpriceid"));
            cp.setDaterule(rs.getString("daterule"));
            cp.setSaleprice(rs.getLong("saleprice"));
            cp.setLoenprice(rs.getLong("loenprice"));
            cp.setPricememo(rs.getString("pricememo"));
            cp.setHoles(rs.getInt("holes"));
            li.add(cp);
        }
        return li;
    }

}

 

6.Servlet调用

 

package cn.loen.golf.course.action;

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import cn.loen.platform.security.ProxyService;
import cn.loen.golf.course.ICourseService;
import java.util.List;
import cn.loen.platform.common.BusinessException;
import cn.loen.platform.util.page.Page;
import java.util.ArrayList;
import javax.servlet.http.HttpSession;

public class CourseSearchAction extends Action {
    private int pageNumber = 1;
    private int pageSize = 5;
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) throws
            BusinessException, Exception {
        CourseSearchActionForm courseSearchForm = (CourseSearchActionForm)
                                                  form;
        HttpSession session = request.getSession(true);
        String pageNumStr = request.getParameter("pageNumber");
        if (pageNumStr == null) {//用户查询 没分页请求 默认显示第一页
            pageNumStr = "1";
             session.setAttribute("courseSearchForm",courseSearchForm); //把用户的查询条件封装到Session
        }
        else{

         //用户分页请求
            if(session.getAttribute("courseSearchForm")!=null)//防止用户乱添加参数
           courseSearchForm = (CourseSearchActionForm)session.getAttribute("courseSearchForm");  //取得查询条件
        }
        pageNumber = Integer.parseInt(pageNumStr);
        List list = new ArrayList();
        list.add(courseSearchForm.getCoursename());
        list.add(courseSearchForm.getProvincecode());
        list.add(courseSearchForm.getCitycode());
        Object[] object = list.toArray();//添加查询条件 注意Form需要重写reset()方法 把所有null转为"";
        Page page = getICourseService().findCoursesPricesByuser(pageNumber,
                pageSize, object);
        request.setAttribute("Page", page);
        String path = request.getRequestURI();//取得Action路径
        request.setAttribute("myPageURL", path + "?");
        return mapping.findForward("success");
    }

    private ICourseService getICourseService() {
        return (ICourseService) ProxyService.
                getBusinessService(
                        "CourseService");
    }

}

 

7.Jsp页面

<%@page contentType="text/html;charset=gb2312" language="java" import="java.util.*,cn.loen.golf.course.po.*,cn.loen.golf.course.action.*"%>
<%@ page import="cn.loen.platform.util.page.Page"%>
<%@ include file="/common/taglibs.jsp" %>
<html:html lang="true">
<head>
 <%@ include file="/common/meta.jsp" %>
    <link href="/css/admin.css" type="text/css" rel=stylesheet>
  </head>
  <body>
  <center>
    <%@ include file="/common/message.jsp" %>
    <br>
<html:form action="/golf/courseSearchAction.do">
  <table width="394" border="1" align="center">
    <tr>
      <td width="65">球场名:</td>
      <td width="181"><html:text property="coursename"/></td>
      <td width="43">省份</td>
      <td width="77"><html:text property="provincecode"/></td>
    </tr>
    <tr>
      <td>xx:</td>
      <td></td>
      <td>城市</td>
      <td><html:text property="citycode"/></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="提交" /></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
</html:form>
<br>
<table width="745" border="1" align="center">
${Page}
<%
Page datapage = (Page)request.getAttribute("Page");
List dataList = new ArrayList();//数据
int  dataNum = 0;
if(datapage!=null){
  dataList = datapage.getThisPageElements();
  dataNum = dataList.size();
}
for(int i= 0;i < dataNum;i++){
CourseSearchActionForm cform = (CourseSearchActionForm)dataList.get(i);
List list = cform.getPriceList();
int size = list.size();
%>
<tr>
  <td width="39" rowspan="<%=size+2%>">名称:<a href="/golf/admin/course/detailCourse.do?courseid=<%=cform.getCourseid()%>"><%=cform.getCoursename()%></a></td>
  <td height="24" colspan="5" bgcolor="#FFCCCC">省份:<%=cform.getProvincecode()%></td>
</tr>
<tr>
<td width="54">价格类型</td>
  <td width="61">市场价</td>
  <td width="39">罗恩价</td>
  <td width="54">球洞</td>
  <td width="54">说明</td>
</tr>
<%for(int n=0;n<list.size();n++){
  CoursePrice cp = (CoursePrice)list.get(n);
  %>
<tr>
<td><%=cp.getDaterule()%></td>
  <td><%=cp.getSaleprice()%></td>
  <td><%=cp.getLoenprice()%></td>
  <td><%=cp.getHoles()%></td>
  <td><%=cp.getPricememo()%></td>
</tr>
<%}}%>
</table>
<jsp:include page="/platform/common/pageBar.jsp" flush="false" />
</body>
</html:html>

7.pageBar.jsp 控制条

 

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="java.util.*"%>
<%@ page import="cn.loen.platform.util.page.Page"%>

<%

Page myPage = (Page)request.getAttribute("Page");

int lastPageNumber = 0;//总页数
int nextPageNumber = 0;//下页
int pageSize = 0;//每页记录数
int previoutPageNumber = 0;//上页
List orderlist = new ArrayList();//数据
int firstElement = 0;//当前第一条
int lastElement = 0;//当前最后一条
int pageNum = 0;//当前第几页
int totalElement = 0;//总记录数
if (myPage != null){
 lastPageNumber = myPage.getLastPageNumber();//总页数
 nextPageNumber = myPage.getNextPageNumber();//下页
 pageSize = myPage.getPageSize();//每页记录数
  previoutPageNumber = myPage.getPreviousPageNumber();//上页
 orderlist = myPage.getThisPageElements();//数据
 firstElement = myPage.getThisPageFirstElementNumber();//当前第一条
 lastElement = myPage.getThisPageLastElementNumber();//当前最后一条
 pageNum = myPage.getThisPageNumber();//当前第几页
 totalElement = myPage.getTotalNumberOfElements();//总记录数
}

String pageURL = (String)request.getAttribute("myPageURL");

%>


<table width="100%" border="0" align="center">
<tr>
  <td><span class="font">共<%=totalElement%>条/每页<%=pageSize%>条 第<%=pageNum%>页/共<%=lastPageNumber%>页</span></td>
  <td>
    <div align="right" class="font">[<a href="javascript:gotoPage(1)">首页</a>][<a href="javascript:gotoPage(<%=previoutPageNumber%>)">上一页</a>][<a href="javascript:gotoPage(<%=nextPageNumber%>)">下一页</a>][<a href="javascript:gotoPage(<%=lastPageNumber%>)">末页</a>]
      转第
      <select name="jump" οnchange="jumpPage(this)">
      <%for (int i = 1; i <= lastPageNumber; i++) {
        if (i == pageNum) {%>
          <option selected value="<%=i%>"><%=i%></option>
          <%}
          else{%>
          <option value="<%=i%>"><%=i%></option>
          <%}
        }%>
      </select>
      页
    </div></td>
  </tr>
</table>

<SCRIPT LANGUAGE="JavaScript" type="">
function jumpPage(selObj){
  window.location.href="<%=pageURL%>&pageNumber="+selObj.options[selObj.selectedIndex].value;
}
function gotoPage(pageNumber){

  window.location.href="<%=pageURL%>&pageNumber="+pageNumber;
}
</SCRIPT>

完成

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值