分数不多哦。你可以用 STRUST的前台分页技术、数据库、存储过程也可以。如果你用到了HIBERNATE。可以尝试下它的简易分页。

解决方案 »

  1.   

    //下面是我从自己写以前写的例子中截取出来的代码 希望对 楼主 有帮助   
    /**分页实体类**/
    package com.pagination;
    import java.util.List;
    public class Pagination {
    /**
     * 总页数
     */
    private int totalityPage;
    /**
     * 页面大小
     */
    private int pageSize=5;//默认为5条 可以在 XML 文件里配置页面 大小方便维护
    /**
     * 数据集合
     */
    private List data;
    /**
     * 当前页
     */
    private int currentlyPage=1;
    /**
     * 总共记录 
     */
    private int allRegister;
    public int getAllRegister() {
    return allRegister;
    }
    public void setAllRegister(int allRegister) {
    this.allRegister = allRegister;
    }
    public int getCurrentlyPage() {
    return currentlyPage;
    }
    public void setCurrentlyPage(int currentlyPage) {
    this.currentlyPage = currentlyPage;
    }
    public List getData() {
    return data;
    }
    public void setData(List data) {
    this.data = data;
    }
    public int getPageSize() {
    return pageSize;
    }
    public void setPageSize(int pageSize) {
    this.pageSize = pageSize;
    }
    public int getTotalityPage() {
    return totalityPage;
    }
    public void setTotalityPage(int totalityPage) {
    this.totalityPage = totalityPage;
    }
    }
    ====================================================================
     /*DAO 要写两个方法 一个用与获得分页数据 另一个用于获得总页数*/
      下面的两个方法是用 hibernate dao的 如果你不用hibernate 可以自己稍加改动就可以了
    /**
    *获得数据集合   参数currentlyPage: 代表当前页;参数pageSize:代表页面大小 */ 
    public List findAll(int currentlyPage ,int pageSize) {
    log.debug("finding all Employee instances");
    if(pageSize == 0){
    pageSize = 5;//如果页面面大小为空 设置五 5
    }
    if(currentlyPage<1){   //当前页 下页第一页
    currentlyPage = 1;//让当前页等于 第一页
    }
    int totality = this.getTotalityPage(pageSize);//获得总页数
    if(currentlyPage >totality){     //当前页大于 最后一页 
    currentlyPage = totality; //让当前页等于 最后一页
    }
    currentlyPage=(currentlyPage-1)*5;//计算当前数据为第几行
    try {
    String queryString = "from Employee";
    Query queryObject = getSession().createQuer(queryString);
    queryObject.setFirstResult(currentlyPage);//设置从第几行取数据
    queryObject.setMaxResults(pageSize);//设置页面大小
    return queryObject.list();//获得数据集
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }
    }
    //获得总页数 参数 pageSize 为页面大小
    public int getTotalityPage(int pageSize){
    if(pageSize == 0){
    pageSize = 5;
    }
    log.debug("finding all Employee instances");
    try {
    String queryString = "select count(*) from Employee";
    Query query = getSession().createQuery(queryString);
    List list =query.list();
    Object obj = (Object) list.get(0);//获得总记录数
    int curr = Integer.parseInt(obj.toString());
    int totalityPage =curr/pageSize;//计算总页数
    if(curr%pageSize!=0){           //如果有余数 
    totalityPage +=1;      //总页数 加 1
    }
    return totalityPage;
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }
    }
      

  2.   

    // 显示 action   
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    // TODO Auto-generated method stub
    //取得 分页对象 page 并放入 session 中
    HttpSession session = request.getSession(true);
    Pagination page = (Pagination) session.getAttribute("page");
    if(page == null){
    page = new Pagination();
    session.setAttribute("page", page);
    }
    //获得当前页 从页面传过来的
    String cpage = request.getParameter("currentlyPage");
    int currentlyPage=1;
    if(cpage == null){
    currentlyPage=1;
    }else{
    currentlyPage = Integer.parseInt(cpage);
    }

    page.setCurrentlyPage(currentlyPage);//设置当前页
    page.setPageSize(5);                //设置页面大小
    EmpBusi empbusi = new EmpBusi();
    List empall =empbusi.findAll(page.getCurrentlyPage(),page.getPageSize());
    int totalityPage = empbusi.getTotalityPage(page.getPageSize());
    page.setTotalityPage(totalityPage);//设置总页数
    page.setData(empall);              //设置数据集
    return mapping.findForward("ok");  //跳转
    }
    =======================================================
    ========================显示界面=======================
    <html> 
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JSP for AddEmpForm form</title>
    </head>
    <body>
    <p align="center">显示界面 <a href="addEmp.jsp">添加</a></p>
    <table width="800" border="1" align="center">
          <tr>
            <td width="18">编号</td>
            <td width="18">姓名</td>
            <td width="18">性别</td>
            <td width="18">年龄</td>
            <td width="18">部门</td>
            <td width="18">爱好</td>
            <td width="18">修改</td>
            <td width="23">删除</td>
          </tr>
          <!-- 用逻辑标库的迭代标签输出数据 -->
          <logic:iterate id="emp" name="page" property="data">
          <tr>
            <td><bean:write name="emp" property="empID"/></td>
            <td><bean:write name="emp" property="empName"/></td>
            <td><bean:write name="emp" property="empSex"/></td>
            <td><bean:write name="emp" property="empBirthday"/></td>
            <td><bean:write name="emp" property="empPost"/></td>
            <td>
             <nested:iterate id="elove" name="emp" property="empLove">
             <bean:write name="elove" property="love"/>  
             </nested:iterate>
            </td>
            <td><a href="${pageContext.request.contextPath}/findAmendEmp.do?empID=<bean:write name="emp" property="empID"/>">修改</a></td>
            <td><a href="${pageContext.request.contextPath}/delEmp.do?empID=<bean:write name="emp" property="empID"/>">删除</a></td>
          </tr>
          </logic:iterate>
        </table>
        <!------------- 分页操作 ---------->
        <div align="center">
      <a href="${pageContext.request.contextPath}/display.do?currentlyPage=1">首页</a>
        <!-------当前页 不小于 1 时 显示"上一页"为超级链接---------->
            <logic:notEqual value="1" property="currentlyPage" name="page">
             <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage-1}">上一页</a>
       </logic:notEqual>
             <!-------当前页等于1 时 显示"上一页" 为上一页 取消超链 ---->
       <logic:equal value="1" property="currentlyPage" name="page">上一页</logic:equal>
              <!-------当前页 小于 最大页时 显示"下一页" 为超链接------->
       <logic:notEqual value="${page.totalityPage}" property="currentlyPage" name="page">
       <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.currentlyPage+1}">下一页</a>
       </logic:notEqual>
             <!-------当前页 等于于 最大页时 显示"下一页" 为下一页 超链失效------->
       <logic:equal value="${page.totalityPage}" property="currentlyPage" name="page">下一页</logic:equal>
       <a href="${pageContext.request.contextPath}/display.do?currentlyPage=${page.totalityPage }">末页</a>
       </div>
    </body>
    </html>
    ===================================
    终于加完注释了^_^ 希望楼主能有灵感 太困了 其中注释不清楚或有错误
    请原谅!! 睡觉喽!!!晚安!!
      

  3.   

    不知道你是大哥还是大姐,真的太感谢你了
    我是一个j2ee新手
    你的代码让我有许多收获!
    真想和你好好聊聊!
    可是在这里又不好从和说起!希望收到你的邮件!
      

  4.   

    自己写一个分页标签或者使用displaytag插件。