乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      jsp 分頁程序詳解

       鳳舞天煌 2006-12-14
       private int currentPage = 1; // 當前頁

       private int totalPages = 0; // 總頁數

       private int pageRecorders = 5;// 每頁5條數據 

       private int totalRows = 0; // 總數據數

       private int pageStartRow = 0;// 每頁的起始數

       private int pageEndRow = 0; // 每頁顯示數據的終止數

       private boolean hasNextPage = false; // 是否有下一頁

       private boolean hasPreviousPage = false; // 是否有前一頁
       
       private int nextPage = 0;//下一頁的頁碼
       
       private int previousPage = 0;//上一頁的頁碼

      然后這些屬性之間是有聯(lián)系的,我們可以在構造函數的時候就初始化一些屬性
      有兩種方法:
      一,根據總的頁數,(假設當前頁為1)
       public PageBean(int totalRows){
        this.totalRows = totalRows;
        this.currentPage = 1;
        hasPreviousPage = false;
        if ((totalRows % pageRecorders) == 0) {
         totalPages = totalRows / pageRecorders;
        } else {
         totalPages = totalRows / pageRecorders + 1;
        }
        if (totalRows >= pageRecorders) {
         hasNextPage = true;
         nextPage = 2;
         this.pageEndRow = pageRecorders;
        } else {
         this.pageEndRow = totalRows;
         hasNextPage = false;
         nextPage = 1;
        }
         this.pageStartRow = 0;  
         previousPage = 1;
       }
      然后在按下一頁或者上一頁的時候需要如下函數處理:
      public void nextPage() {
        if(hasNextPage == true)
        currentPage = currentPage + 1;
        if ((currentPage - 1) > 0) {
         hasPreviousPage = true;
        } else {
         hasPreviousPage = false;
        }
        if (currentPage >= totalPages) {
         hasNextPage = false;
         this.nextPage = currentPage;
        } else {
         hasNextPage = true;
         nextPage = currentPage+1;
        }
        this.pageStartRow = (currentPage -1) * pageRecorders;
        if(hasNextPage == true)
        this.pageEndRow = pageStartRow + 5;
        else{
         this.pageEndRow =this.totalPages;
        }
        previousPage = currentPage - 1;
       }
       
       public void previousPage() {
        if(hasPreviousPage == true)
        currentPage = currentPage - 1;
        if (currentPage == 0) {
         currentPage = 1;
        }
        if (currentPage >= totalPages) {
         hasNextPage = false;
        } else {
         hasNextPage = true;
        }
        nextPage = currentPage + 1;
        if ((currentPage - 1) > 0) {
         hasPreviousPage = true;
         previousPage = currentPage - 1;
        } else {
         hasPreviousPage = false;
         previousPage = currentPage;
        }
        
        this.pageStartRow = (currentPage -1) * pageRecorders;
        if(hasNextPage == true)
        this.pageEndRow = pageStartRow + 5;
        else{
         this.pageEndRow =this.totalPages;
        }
       }
      在HTML中按下一頁或者上一頁的時候有如下代碼:
      <logic:equal name="page" property="hasNextPage" value="true">
      <html:link page="/List.do?action=nextPage">
      nextPage
      </html:link>
      </logic:equal>
      <logic:equal name="page" property="hasPreviousPage" value="true">
      <html:link page="/List.do?action=previousPage">
      PreviousPage
      </html:link>
      </logic:equal>
      然后在Action中作如下處理:  
        String currentPage = request.getParameter("currentPage");
        HttpSession session = request.getSession(); 
        EmployeeForm employeeForm = (EmployeeForm) form;
        String queryString = null;
        String queryCon = null;
        String action = employeeForm.getAction();
        List list = new ArrayList();
        PageBean pb = null;
        EmployeeDao employeeDao = new EmployeeDao();
        if(action == null || action.equals("null")){
         int totalRows = employeeDao.getTotalRows();
        
          pb = new PageBean(totalRows);
          session.removeAttribute("page");
          queryString = employeeForm.getQueryString();
          queryCon = employeeForm.getQueryCon();
          session.setAttribute("queryString",queryString);
          session.setAttribute("queryCon",queryCon);   
          list = employeeDao.getAllEmployee(queryString, queryCon,
            String.valueOf(pb.getPageStartRow()),
            String.valueOf(pb.getPageRecorders()));
             
        }else if(action.equals("nextPage")){
         queryString = (String)session.getAttribute("queryString");
         queryCon = (String)session.getAttribute("queryCon");      
         employeeForm.setQueryString(queryString);
         employeeForm.setQueryCon(queryCon);
         pb = (PageBean)session.getAttribute("page");
         pb.nextPage();
         list = employeeDao.getAllEmployee(queryString, queryCon,
           String.valueOf(pb.getPageStartRow()),
           String.valueOf(pb.getPageRecorders()));
        }else if(action.equals("previousPage")){
         queryString = (String)session.getAttribute("queryString");
         queryCon = (String)session.getAttribute("queryCon");
         employeeForm.setQueryString(queryString);
         employeeForm.setQueryCon(queryCon);
         pb = (PageBean)session.getAttribute("page");   
         pb.previousPage();
         list = employeeDao.getAllEmployee(queryString, queryCon,
           String.valueOf(pb.getPageStartRow()),
           String.valueOf(pb.getPageRecorders()));
        }
              
              pb.description();
              session.setAttribute("page",pb);        
        request.setAttribute("admin", "admin");
        request.setAttribute("employee", list);
        return mapping.findForward("showlist");
        然后在數據庫查詢中有如下代碼:
      /**
      *查詢總記錄數
      */
       public int getTotalRows() {
        int totalRows = 0;
        String sql = "select count(*) from employee";//假設是員工表
        Database db = new Database();
        ResultSet rs = db.executeQuery(sql);
        try {
         while (rs.next()) {
          String id = (String) rs.getString(1);
          totalRows = Integer.parseInt(id);
         }
        } catch (SQLException e) {
         e.printStackTrace();
        }
        db.close();
        return totalRows;
       }
       
      /*
      *查詢每一頁需要查詢的頁碼
      */
      public List getAllEmployee(String queryString, String queryCon,String startRow,String num) {
        List list = new ArrayList();
        String sql = null;
        if (queryString == null || queryString.equals("")) {
         sql = "select * from employee,dept " +
           "where dept.Id = employee.deptId " +
           "order by employee.id asc"+ " limit "+startRow+","+num;
        } else {
         sql = "select * from employee,dept " +
           "where dept.Id = employee.deptId order by employee."
           + queryString + " " + queryCon + " limit "+startRow+","+num;
        }
        Employee employee = null;
        Database db = new Database();
        ResultSet rs = db.executeQuery(sql);
        try {
         while (rs.next()) {
          String id = (String) rs.getString("employee.id");
          String name = (String) rs.getString("employee.name");
          String deptId = (String) rs.getString("employee.deptId");
          String deptName = (String) rs.getString("dept.deptName");
          employee = new Employee();
          employee.setId(id);
          employee.setName(name);
          employee.setDeptId(deptId);
          employee.setDeptName(deptName);
          list.add(employee);
         }
        } catch (SQLException e) {
         e.printStackTrace();
        }
        db.close();
        return list;
       }
      這里我用了hibernate進行數據庫操作,你也可以用jdbc進行操作,情況類似。

      二,根據總的頁數,當前頁
      這樣的話構造函數應該寫成:
      public PageBean(int totalRows,int currentPage) {
        this.totalRows = totalRows;
        this.currentPage = currentPage;
        if(currentPage < 2)
         hasPreviousPage = false;
        else
         hasPreviousPage = true;
        if ((totalRows % pageRecorders) == 0) {
         totalPages = totalRows / pageRecorders;
        } else {
         totalPages = totalRows / pageRecorders + 1;
        }
        if (currentPage < totalPages) {
         hasNextPage = true;
         nextPage = currentPage + 1;
         pageStartRow = (currentPage - 1)*pageRecorders;
         this.pageEndRow = pageStartRow + pageRecorders;
        } else if(currentPage == totalPages){
         pageStartRow = (currentPage - 1)*pageRecorders;
         this.pageEndRow = totalRows;
         hasNextPage = false;
         nextPage = currentPage;
        }
        if(currentPage < 2){
         previousPage = currentPage;
         hasPreviousPage = false;
        }else if(currentPage > 1){
         previousPage = currentPage-1;
         hasPreviousPage = true;
        } 
       }

      在action中應該寫成
      if(currentPage == null){
          pb = new PageBean(totalRows);
          session.removeAttribute("page");
          queryString = employeeForm.getQueryString();
          queryCon = employeeForm.getQueryCon();
          session.setAttribute("queryString",queryString);
          session.setAttribute("queryCon",queryCon);   
          list = employeeDao.getAllEmployee(queryString, queryCon,
            String.valueOf(pb.getPageStartRow()),
            String.valueOf(pb.getPageRecorders()));
          }
         else{
          pb = new PageBean(totalRows,Integer.parseInt(currentPage));
          queryString = employeeForm.getQueryString();
          queryCon = employeeForm.getQueryCon();
          session.setAttribute("queryString",queryString);
          session.setAttribute("queryCon",queryCon);   
          list = employeeDao.getAllEmployee(queryString, queryCon,
            String.valueOf(pb.getPageStartRow()),
            String.valueOf(pb.getPageRecorders()));
         }
        session.setAttribute("page",pb);        
        request.setAttribute("admin", "admin");
        request.setAttribute("employee", list);
        return mapping.findForward("showlist");

      在jsp中應該寫成:
      <logic:equal name="page" property="hasNextPage" value="true">
      <a href="List.do?currentPage=<bean:write name="page" property="nextPage"/>">
      nextPage
      </a>
      </logic:equal>
      <logic:equal name="page" property="hasPreviousPage" value="true">
       | 
      <a href="/test/List.do?currentPage=<bean:write name="page" property="previousPage"/>">
      PreviousPage
      </a>
      </logic:equal>
      數據庫查詢部分依然適用。

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多