<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jsp分頁(yè)

    今天寫了個(gè)jsp的分頁(yè)程序,以前在做jsp項(xiàng)目的時(shí)候,分頁(yè)采用的是“首頁(yè),尾頁(yè),上一頁(yè),下一頁(yè)”的形式,雖然分頁(yè)沒有問題,但總感覺不夠友好,現(xiàn)在很多論壇都采用這種模式,即根據(jù)用戶請(qǐng)求的頁(yè)面,列出請(qǐng)求頁(yè)面和該頁(yè)面的前幾頁(yè)和后幾頁(yè),看上去比較舒服,今天就模仿“編程中國(guó)論壇”的分頁(yè)風(fēng)格練了練,后臺(tái)查詢數(shù)據(jù)庫(kù)的分頁(yè)代碼與之前做過的基本沒有變化,主要是在jsp頁(yè)面上多了些判斷,效果實(shí)現(xiàn)了,至于效率我就不好說(shuō)了,如果哪位看過下面代碼的朋友有什么好方法,還望大家能夠一起交流,共同進(jìn)步。

    該程序采用了MVC設(shè)計(jì)模式,代碼中的ServletX為總控制器,根據(jù)model值將請(qǐng)求轉(zhuǎn)至相應(yīng)模塊,后臺(tái)數(shù)據(jù)庫(kù)為Oracle,由于emp表中數(shù)據(jù)只有15條,所以我每頁(yè)只顯示一條記錄,效果如圖:

    1,用戶登錄,若登錄成功轉(zhuǎn)到main.jsp頁(yè)面,以下為用戶控制器代碼:
    package controls;

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import entitys.User;
    import routines.Translation;
    import operater.*;
    import java.util.*;

    public class UserServlet extends HttpServlet {

        
    /**
         * Constructor of the object.
         
    */

        
    public UserServlet() {
            
    super();
        }


        
    /**
         * Destruction of the servlet. <br>
         
    */

        
    public void destroy() {
            
    super.destroy(); // Just puts "destroy" string in log
            
    // Put your code here
        }


        
    /**
         * The doGet method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to get.
         * 
         * 
    @param request the request send by the client to the server
         * 
    @param response the response send by the server to the client
         * 
    @throws ServletException if an error occurred
         * 
    @throws IOException if an error occurred
         
    */

        
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
                    
    throws ServletException, IOException {
                String event 
    = request.getParameter("event");
                
    if(event.equals("login")){
                    String userName 
    = Translation.transCode(request.getParameter("userName"));
                    String password 
    = Translation.transCode(request.getParameter("password"));
                    User user 
    = new User();
                    user.setUserName(userName);
                    user.setPassword(password);
                    OperUser obj 
    = new OperUser();
                    
    if(obj.isExist(user)){
                        
    this.mySet(request,"1");
                        request.getRequestDispatcher(
    "main.jsp").forward(request, response);
                        
    return;
                    }
    else{
                        System.out.println(
    "失敗");
                    }

                }

        }

            
            
    private void mySet(HttpServletRequest request,Object pageNo){
                OperEmp emp 
    = new OperEmp();
                        
    //向請(qǐng)求中存儲(chǔ)關(guān)于分頁(yè)的信息
                        ArrayList aryInfo = emp.getEmp(pageNo);
                        request.setAttribute(
    "data", aryInfo.get(0));
                        request.setAttribute(
    "pageNo", aryInfo.get(1));
                        request.setAttribute(
    "pageCount", aryInfo.get(2));
                        request.setAttribute(
    "rowsCount", aryInfo.get(3));
                        ArrayList aryNumber 
    = new ArrayList();
                        
    for(int i=1;i<=10;i++){
                            aryNumber.add(
    new Integer(i));
                        }

                        request.setAttribute(
    "number", aryNumber);
                        ArrayList aryNumberR 
    = new ArrayList();
                        
    for(int i=9;i>=0;i--){
                            aryNumberR.add(
    new Integer(i));
                        }

                        request.setAttribute(
    "numberR", aryNumberR);
                        
    //向請(qǐng)求中存儲(chǔ)關(guān)于職位的信息
                        ArrayList aryJob = emp.getJob();
                        request.setAttribute(
    "job", aryJob);
                        
    //向請(qǐng)求中存儲(chǔ)關(guān)于部門編號(hào)的信息
                        OperDept dept = new OperDept();
                        ArrayList aryDeptno 
    = dept.getDeptno();
                        request.setAttribute(
    "deptno", aryDeptno);
            }


        
    /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * 
    @param request the request send by the client to the server
         * 
    @param response the response send by the server to the client
         * 
    @throws ServletException if an error occurred
         * 
    @throws IOException if an error occurred
         
    */

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {
            
    this.doGet(request, response);
        }


        
    /**
         * Initialization of the servlet. <br>
         *
         * 
    @throws ServletException if an error occure
         
    */

        
    public void init() throws ServletException {
            
    // Put your code here
        }


    }


    2,main.jsp頁(yè)面,即顯示分頁(yè)的頁(yè)面的代碼:
    <%@page contentType="text/html" pageEncoding="GBK"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd"
    >

    <html>
        
    <head>
            
    <title>職員信息</title>
            
    <script type="text/javascript">
                
    function go(){
                    
    var page = document.frmMain.pageNo.value;
                    window.location.href 
    = 'ServletX?model=emp&event=partitionPage&pageNo=+ page;
                    
    return;
                }

            
    </script>
        
    </head>
        
    <body>
            
    <form name="frmMain" action="ServletX" method="get">
                
    <table border="1" align="center">
                    
    <caption>
                        職員信息表
                    
    </caption>
                    
    <tr>
                        
    <th onclick="selectAll(this)" style="cursor:hand">全選</th>
                        
    <th>職員編號(hào)</th>
                        
    <th>職員姓名</th>
                        
    <th>職位</th>
                        
    <th>直接上司</th>
                        
    <th>入職時(shí)間</th>
                        
    <th>薪金</th>
                        
    <th>獎(jiǎng)金</th>
                        
    <th>部門編號(hào)</th>
                        
    <th>操作</th>
                    
    </tr>
                    
    <c:forEach  var="obj" items="${requestScope.data}">
                        
    <tr>
                            
    <td align="center"><input type="checkbox" name="${obj.empNo}"/></td>
                            
    <td>${obj.empNo}</td>
                            
    <td>${obj.ename}</td>
                            
    <td>${obj.job}</td>
                            
    <td>${obj.mgr}</td>
                            
    <td>${obj.hireDate}</td>
                            
    <td>${obj.sal}</td>
                            
    <td>${obj.comm}</td>
                            
    <td>${obj.deptno}</td>
                            
    <td><input type="button" value="編輯"/></td>
                        
    </tr>
                    
    </c:forEach>
                    
    <tr>
                        
    <td colspan="10" align="left">
                            總記錄數(shù):${requestScope.rowsCount}
    &nbsp;&nbsp;&nbsp;
                            
    <c:choose>
                                
    <c:when test="${requestScope.pageCount <= 10}">
                                    
    <c:if test="${requestScope.pageNo != 1}">
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}"><<</a>
                                    
    </c:if>
                                    
    <c:forEach var="num" begin="0" end="${requestScope.pageCount - 1}" items="${requestScope.number}">
                                        
    <c:choose>
                                            
    <c:when test="${requestScope.pageNo != num}">
                                                
    <href="ServletX?model=emp&event=partitionPage&pageNo=${num}">${num}</a>
                                            
    </c:when>
                                            
    <c:otherwise>
                                                
    <font color="red">${requestScope.pageNo}</font>
                                            
    </c:otherwise>
                                        
    </c:choose>
                                    
    </c:forEach>
                                    
    <c:if test="${requestScope.pageNo != requestScope.pageCount}">
                                        
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + 1}">>></a>
                                    
    </c:if>
                                
    </c:when>
                                
                                
    <c:otherwise>
                                    
    <c:choose>
                                        
    <c:when test="${requestScope.pageNo > 3 && requestScope.pageNo < requestScope.pageCount - 7}">
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=1">1</a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}"><<</a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 2}">${requestScope.pageNo - 2}</a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}">${requestScope.pageNo - 1}</a>
                                            
    <font color="red">${requestScope.pageNo}</font>
                                            
    <c:forEach var="num" items="${requestScope.number}" begin="0" end="6">
                                                
    <c:if test="${requestScope.pageNo + num <= pageCount}">
                                                    
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + num}">${requestScope.pageNo + num}</a>
                                                
    </c:if>
                                            
    </c:forEach>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + 1}">>></a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageCount}">..${requestScope.pageCount}</a>
                                        
    </c:when>
                                        
                                        
    <c:when test="${requestScope.pageNo > 3 && requestScope.pageNo >= requestScope.pageCount -7 && requestScope.pageNo != requestScope.pageCount}">
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=1">1</a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}"><<</a>
                                            
    <c:forEach var="numR" items="${requestScope.numberR}" begin="0">
                                                
    <c:choose>
                                                    
    <c:when test="${requestScope.pageCount - numR != requestScope.pageNo}">
                                                        
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageCount - numR}">${requestScope.pageCount - numR}</a>
                                                    
    </c:when>
                                                    
    <c:otherwise>
                                                        
    <font color="red">${requestScope.pageNo}</font>
                                                    
    </c:otherwise>
                                                
    </c:choose>
                                            
    </c:forEach>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + 1}">>></a>
                                        
    </c:when>
                                        
                                        
    <c:when test="${requestScope.pageNo <= 3 && requestScope.pageNo > 1}">
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}"><<</a>
                                            
    <c:forEach var="num" items="${requestScope.number}">
                                                
    <c:choose>
                                                    
    <c:when test="${requestScope.pageNo != num}">
                                                        
    <href="ServletX?model=emp&event=partitionPage&pageNo=${num}">${num}</a>
                                                    
    </c:when>
                                                    
    <c:otherwise>
                                                        
    <font color="red">${requestScope.pageNo}</font>
                                                    
    </c:otherwise>
                                                
    </c:choose>
                                            
    </c:forEach>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + 1}">>></a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageCount}">..${requestScope.pageCount}</a>
                                        
    </c:when>
                                        
                                        
    <c:when test="${requestScope.pageNo == 1}">
                                            
    <c:forEach var="num" items="${requestScope.number}">
                                                
    <c:choose>
                                                    
    <c:when test="${requestScope.pageNo != num}">
                                                        
    <href="ServletX?model=emp&event=partitionPage&pageNo=${num}">${num}</a>
                                                    
    </c:when>
                                                    
    <c:otherwise>
                                                        
    <font color="red">${requestScope.pageNo}</font>
                                                    
    </c:otherwise>
                                                
    </c:choose>
                                            
    </c:forEach>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo + 1}">>></a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageCount}">..${requestScope.pageCount}</a>
                                        
    </c:when>
                                        
                                        
    <c:when test="${requestScope.pageNo == requestScope.pageCount}">
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=1">1</a>
                                            
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageNo - 1}"><<</a>
                                            
    <c:forEach var="numR" items="${requestScope.numberR}" begin="0">
                                                
    <c:choose>
                                                    
    <c:when test="${requestScope.pageCount - numR != requestScope.pageNo}">
                                                        
    <href="ServletX?model=emp&event=partitionPage&pageNo=${requestScope.pageCount - numR}">${requestScope.pageCount - numR}</a>
                                                    
    </c:when>
                                                    
    <c:otherwise>
                                                        
    <font color="red">${requestScope.pageNo}</font>
                                                    
    </c:otherwise>
                                                
    </c:choose>
                                            
    </c:forEach>
                                        
    </c:when>
                                    
    </c:choose>
                                
    </c:otherwise>
                            
    </c:choose>
                            
    <input name="pageNo" type="text" size="3"/>
                            
    <input type="button" onclick="go()" value="GO"/>
                        
    </td>
                    
    </tr>
                    
    <tr>
                        
    <td colspan="10" align="center">
                            
    <input type="button" value="增加" onclick="addRow()"/>
                            
    <input type="submit" value="保存" onclick="saveRow()"/>
                            
    <input type="submit" value="刪除" onclick="deleteRow()"/>
                        
    </td>
                    
    </tr>
                
    </table>
            
    </form>
        
    </body>
    </html>
    3,用戶點(diǎn)擊相應(yīng)頁(yè)面鏈接或通過文本框請(qǐng)求頁(yè)面時(shí),即emp表的控制器,方法類似于用戶登錄成功后的處理,代碼如下:
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     
    */


    package controls;

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import entitys.Emp;
    import routines.Translation;
    import operater.*;
    import java.util.*;

    /**
     *
     * 
    @author Administrator
     
    */

    public class EmpServlet extends HttpServlet {
       
        
    /** 
        * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
        * 
    @param request servlet request
        * 
    @param response servlet response
        
    */

        
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        
    throws ServletException, IOException {
            response.setContentType(
    "text/html;charset=UTF-8");
            PrintWriter out 
    = response.getWriter();
            
    try {
                
    /* TODO output your page here
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet EmpServlet</title>");  
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>Servlet EmpServlet at " + request.getContextPath () + "</h1>");
                out.println("</body>");
                out.println("</html>");
                
    */

            }
     finally 
                out.close();
            }

        }
     

        
    /** 
        * Handles the HTTP <code>GET</code> method.
        * 
    @param request servlet request
        * 
    @param response servlet response
        
    */

        
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        
    throws ServletException, IOException {
            String event 
    = request.getParameter("event");
            
    if(event.equals("partitionPage")){
                String pageNo 
    = request.getParameter("pageNo");
                
    this.mySet(request, pageNo);
                request.getRequestDispatcher(
    "main.jsp").forward(request, response);
                
    return;
            }

        }
     
        
        
    private void mySet(HttpServletRequest request, Object pageNo) {
            OperEmp emp 
    = new OperEmp();
            
    //向請(qǐng)求中存儲(chǔ)關(guān)于分頁(yè)的信息
            ArrayList aryInfo = emp.getEmp(pageNo);
            request.setAttribute(
    "data", aryInfo.get(0));
            request.setAttribute(
    "pageNo", aryInfo.get(1));
            request.setAttribute(
    "pageCount", aryInfo.get(2));
            request.setAttribute(
    "rowsCount", aryInfo.get(3));
            ArrayList aryNumber 
    = new ArrayList();
            
    for (int i = 1; i <= 10; i++{
                aryNumber.add(
    new Integer(i));
            }

            request.setAttribute(
    "number", aryNumber);
            ArrayList aryNumberR 
    = new ArrayList();
            
    for (int i = 9; i >=0; i--{
                aryNumberR.add(
    new Integer(i));
            }

            request.setAttribute(
    "numberR", aryNumberR);
            
    //向請(qǐng)求中存儲(chǔ)關(guān)于職位的信息
            ArrayList aryJob = emp.getJob();
            request.setAttribute(
    "job", aryJob);
            
    //向請(qǐng)求中存儲(chǔ)關(guān)于部門編號(hào)的信息
            OperDept dept = new OperDept();
            ArrayList aryDeptno 
    = dept.getDeptno();
            request.setAttribute(
    "deptno", aryDeptno);
        }


        
    /** 
        * Handles the HTTP <code>POST</code> method.
        * 
    @param request servlet request
        * 
    @param response servlet response
        
    */

        
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        
    throws ServletException, IOException {
            
    this.doGet(request, response);
        }


        
    /** 
        * Returns a short description of the servlet.
        
    */

        
    public String getServletInfo() {
            
    return "Short description";
        }

    }

    4,該類為分頁(yè)查詢代碼,用戶可隨需要改變頁(yè)面顯示的記錄行數(shù),代碼如下:
    package operater;

    import java.sql.*;
    import entitys.Emp;
    import db.DataBase;
    import java.util.*;

    /**
     *該類用于完成對(duì)用戶信息表操作的業(yè)務(wù)邏輯
     * 
    @author 非凡DZ
     
    */

    public class OperEmp {
        
        
    private Connection con = null;
        
    private PreparedStatement pstn = null;
        
    private ResultSet rs = null;
        
    private int pageCount = 0;//記錄總頁(yè)數(shù)
        private int pageNo = 0;//記錄要前往的頁(yè)數(shù)
        private int pageRows = 6;//記錄每頁(yè)的行數(shù)
        private int rowsCount = 0;//記錄總行數(shù)
        private int i = 0;//用于控制循環(huán)次數(shù)
        
        
    /**
         * 根據(jù)請(qǐng)求的頁(yè)數(shù)得到相應(yīng)的數(shù)據(jù)
         * 
    @param page 請(qǐng)求的頁(yè)碼
         * 
    @return 請(qǐng)求頁(yè)碼中的信息,請(qǐng)求頁(yè)碼及總頁(yè)數(shù)
         
    */

        
    public ArrayList getEmp(Object page){
            
    if(page == null){
                pageNo 
    = 1;
            }
    else{
                pageNo 
    = Integer.parseInt(page.toString());
            }

            
    if(pageNo < 1){
                pageNo 
    = 1;
            }

            DataBase db 
    = new DataBase();
            con 
    = db.getConnection();
            String sql 
    = "select * from emp";
            ArrayList aryInfo 
    = new ArrayList();
            ArrayList aryEmp 
    = new ArrayList();//記錄所有
            try {
                pstn 
    = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                rs 
    = pstn.executeQuery();
                rs.last();
                rowsCount 
    = rs.getRow();
                pageCount 
    = (rowsCount + pageRows - 1/ pageRows;
                
    if(pageNo > pageCount){
                    pageNo 
    = pageCount;
                }

                
    if(pageCount > 0){
                    rs.absolute((pageNo 
    - 1* pageRows + 1);
                }

                
    while(i < pageRows && !rs.isAfterLast()){
                    Emp emp 
    = new Emp();
                    emp.setEmpNo(rs.getInt(
    1));
                    emp.setEname(rs.getString(
    2));
                    emp.setJob(rs.getString(
    3));
                    emp.setMgr(rs.getInt(
    4));
                    emp.setHireDate(rs.getString(
    5));
                    emp.setSal(rs.getFloat(
    6));
                    emp.setDeptno(rs.getInt(
    7));
                    aryEmp.add(emp);
                    rs.next();
                    i
    ++;
                }

            }
     catch (Exception e) {
                System.out.println(
    "分頁(yè)異常"+e.getMessage());
            }

            aryInfo.add(aryEmp);
            aryInfo.add(
    new Integer(pageNo));//當(dāng)前頁(yè)數(shù)
            aryInfo.add(new Integer(pageCount));//總頁(yè)數(shù)
            aryInfo.add(new Integer(rowsCount));//總行數(shù)
            return aryInfo;
        }

        
        
    /**
         * 得到所有職位
         * 
    @return
         
    */

        
    public ArrayList getJob(){
            DataBase db 
    = new DataBase();
            con 
    = db.getConnection();
            
    boolean flag = false;
            String sql 
    = "select job from emp";
            ArrayList aryJob 
    = new ArrayList();
            
    try{
                pstn 
    = con.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                rs 
    = pstn.executeQuery();
                
    while (rs.next()) {
                    flag 
    = false;
                    
    for (int i = 0; i < aryJob.size(); i++{
                        String job 
    = (String) aryJob.get(i);
                        
    if (job.equals(rs.getString(1))) {
                            flag 
    = true;
                            
    break;
                        }

                    }

                    
    if (!flag) {
                        aryJob.add(rs.getString(
    1));
                    }

                }

            }
    catch(Exception e){
                System.out.println(
    "職位查詢異常"+e.getMessage());
            }

            
    return aryJob;
        }

    }

    以上程序中有一些代碼是用于編輯數(shù)據(jù)用的,如用于存儲(chǔ)職位,部門編號(hào)的集合等

    posted on 2008-04-30 17:30 非凡DZ 閱讀(4264) 評(píng)論(11)  編輯  收藏 所屬分類: J2EE

    評(píng)論

    # re: jsp分頁(yè) 2008-04-30 18:41 yuxianghong

    看了一下你寫的,在數(shù)據(jù)庫(kù)查詢時(shí),你好象是把所有的數(shù)據(jù)都查出來(lái)了,這樣可能效率不是很好.  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-03 15:01 fejay

    學(xué)習(xí)了  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè)[未登錄] 2008-05-03 20:10 jimmy

    要是上百萬(wàn)條記錄呢,不是沒次都都查出來(lái)吧  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-03 21:59 非凡DZ

    確實(shí)就是效率問題 每次都需要查詢所有的記錄 這個(gè)程序只是簡(jiǎn)單的實(shí)現(xiàn)了下效果   回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-04 20:11 ky

    分頁(yè)顯示學(xué)習(xí)了,再加上分頁(yè)查詢吧。  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-05 15:37 愛上對(duì)方

    暈,雖然實(shí)現(xiàn)了分頁(yè),但你看你頁(yè)面代碼,這么復(fù)雜,沒有效率啊  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-05 16:03 非凡DZ

    其實(shí)頁(yè)面代碼我認(rèn)為還不是特別復(fù)雜,可能是這個(gè)風(fēng)格的blog寬度不夠,所以初次看這個(gè)程序的代碼比較繁瑣
    分頁(yè)的時(shí)候無(wú)非就是根據(jù)每頁(yè)記錄數(shù)和總記錄數(shù)得到總的頁(yè)數(shù),然后將總頁(yè)數(shù)分成大于10和小于10兩種情況,再分別就當(dāng)前頁(yè)進(jìn)行一下判斷就好了。
    我看一些朋友提到效率問題,這兩天我也是一直在想,如果真的有上千上萬(wàn)條,甚至百萬(wàn)條分頁(yè),恐怕也很少有人有耐心一直翻下去,況且需要用分頁(yè)顯示的數(shù)據(jù)恐怕也沒有那么龐大吧  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-05-14 17:14 咸魚

    @非凡DZ
    會(huì)有上千上萬(wàn)條帶分頁(yè)的
    我現(xiàn)在開發(fā)的系統(tǒng) 對(duì)于上百萬(wàn)條 是很平常的
    而且經(jīng)常會(huì)用此查詢的。
    不要覺得不可能 很多bug都是在否定的前提下 產(chǎn)生。
    總覺得不可能發(fā)生 它就是那么發(fā)生了。  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-08-16 12:54 hexiaozhen

    spring+hibernate 3.0+struts 2.0的實(shí)現(xiàn)過程能否發(fā)下,我想看看實(shí)現(xiàn)過程,謝了  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè) 2008-08-18 20:39 非凡DZ

    最近恐怕夠嗆,時(shí)間比較緊張,有時(shí)間的話會(huì)寫的  回復(fù)  更多評(píng)論   

    # re: jsp分頁(yè)[未登錄] 2008-09-16 16:32 Stephen

    這樣做太麻煩了,有沒有更合理更簡(jiǎn)單的方法呢?比如在查詢語(yǔ)句上做?  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(2)

    隨筆分類(19)

    隨筆檔案(19)

    友情鏈接

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 久久亚洲免费视频| 色婷婷亚洲一区二区三区| 两个人的视频高清在线观看免费| 国产亚洲AV夜间福利香蕉149| 风间由美在线亚洲一区| 天天摸夜夜摸成人免费视频| 亚洲婷婷第一狠人综合精品| 国产在线观看免费观看不卡| 久久狠狠爱亚洲综合影院| 国产卡二卡三卡四卡免费网址| 亚洲欧洲日本国产| 国产桃色在线成免费视频| 亚洲成人网在线观看| 91网站免费观看| 亚洲w码欧洲s码免费| 日韩在线视频免费看| 精品一区二区三区无码免费直播| 在线观看国产情趣免费视频| 国产AV无码专区亚洲AV蜜芽| 亚洲AV无码之日韩精品| 两个人日本免费完整版在线观看1| 亚洲人成网亚洲欧洲无码久久| 波多野结衣免费一区视频| 亚洲AV无码成人精品区在线观看 | 国产99久久亚洲综合精品| 免费一区二区三区| 久久亚洲精品无码aⅴ大香| av免费不卡国产观看| 噜噜综合亚洲AV中文无码| 8090在线观看免费观看| 亚洲第一页在线播放| 18禁超污无遮挡无码免费网站国产 | 亚洲精品专区在线观看| 免费无码又爽又刺激高潮软件| 久久久久久亚洲Av无码精品专口| 成人免费777777| a级毛片免费完整视频| 亚洲精品午夜在线观看| 免费观看男人免费桶女人视频| 亚洲人成网站在线播放影院在线 | 亚洲AV女人18毛片水真多|