alxe1528

          BlogJava 聯(lián)系 聚合 管理
            3 Posts :: 11 Stories :: 2 Comments :: 0 Trackbacks

          (1)分頁控制類

          package com.tower.util;


          public class PageController {
          int totalRowsAmount; //總行數(shù)
          boolean rowsAmountSet; //是否設(shè)置過totalRowsAmount
          int pageSize=2; //每頁行數(shù)
          int currentPage=1; //當(dāng)前頁碼
          int nextPage;
          int previousPage;
          int totalPages; //總頁數(shù)
          boolean hasNext; //是否有下一頁
          boolean hasPrevious; //是否有前一頁
          String description;
          int pageStartRow;
          int pageEndRow;

          public PageController(int totalRows){
          setTotalRowsAmount(totalRows);
          }
          public PageController(){}

           

           


          public void setTotalRowsAmount(int i) {
          if(!this.rowsAmountSet){
          totalRowsAmount = i;
          totalPages=totalRowsAmount/pageSize+1;
          setCurrentPage(1);
          this.rowsAmountSet=true;
          }

          }


          public void setCurrentPage(int i) {
          currentPage = i;
          nextPage=currentPage+1;
          previousPage=currentPage-1;
          //計(jì)算當(dāng)前頁開始行和結(jié)束行
          if(currentPage*pageSize<totalRowsAmount){
          pageEndRow=currentPage*pageSize;
          pageStartRow=pageEndRow-pageSize+1;

          }else{
          pageEndRow=totalRowsAmount;
          pageStartRow=pageSize*(totalPages-1)+1;
          }


          //是否存在前頁和后頁

          if (nextPage>totalPages){
          hasNext=false;
          }else{
          hasNext=true;
          }
          if(previousPage==0){
          hasPrevious=false;
          }else{
          hasPrevious=true;
          };
          System.out.println(this.description());
          }


          public int getCurrentPage() {
          return currentPage;
          }


          public boolean isHasNext() {
          return hasNext;
          }


          public boolean isHasPrevious() {
          return hasPrevious;
          }


          public int getNextPage() {
          return nextPage;
          }


          public int getPageSize() {
          return pageSize;
          }


          public int getPreviousPage() {
          return previousPage;
          }


          public int getTotalPages() {
          return totalPages;
          }


          public int getTotalRowsAmount() {
          return totalRowsAmount;
          }


          public void setHasNext(boolean b) {
          hasNext = b;
          }


          public void setHasPrevious(boolean b) {
          hasPrevious = b;
          }


          public void setNextPage(int i) {
          nextPage = i;
          }


          public void setPageSize(int i) {
          pageSize = i;
          }


          public void setPreviousPage(int i) {
          previousPage = i;
          }


          public void setTotalPages(int i) {
          totalPages = i;
          }

          public int getPageEndRow() {
          return pageEndRow;
          }


          public int getPageStartRow() {
          return pageStartRow;
          }

          public String getDescription(){
          String description="Total:"+this.getTotalRowsAmount()+
          " items "+this.getTotalPages() +" pages";
          // this.currentPage+" Previous "+this.hasPrevious +
          // " Next:"+this.hasNext+
          // " start row:"+this.pageStartRow+
          // " end row:"+this.pageEndRow;
          return description;
          }

          public String description(){
          String description="Total:"+this.getTotalRowsAmount()+
          " items "+this.getTotalPages() +" pages,Current page:"+
          this.currentPage+" Previous "+this.hasPrevious +
          " Next:"+this.hasNext+
          " start row:"+this.pageStartRow+
          " end row:"+this.pageEndRow;
          return description;
          }


          public static void main(String args[]){
          PageController pc=new PageController(3);
          System.out.println(pc.getDescription());
          // pc.setCurrentPage(2);
          // System.out.println(pc.description());
          // pc.setCurrentPage(3);
          // System.out.println(pc.description());
          }


          }

          (2)查詢Action的代碼片斷

          public ActionForward execute(
          ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws Exception {
          Base queryForm= (Base) form;

          if(!queryForm.getName().equals("")){
          PageController pc=new PageController();
          EmployeeBase service=new EmployeeBase();
          ArrayList result=(ArrayList)service.search(queryForm,pc);

          HttpSession session=request.getSession();

          session.setAttribute("queryForm",queryForm);
          session.setAttribute("pageController",service.getPageController());

          request.setAttribute("queryResult",result);
          request.setAttribute("pageController",service.getPageController());
          return mapping.findForward("haveResult");
          }else{
          return mapping.findForward("noResult");
          }

           


          }

          (3),翻頁Action的代碼片斷

          public ActionForward execute(
          ActionMapping mapping,
          ActionForm form,
          HttpServletRequest request,
          HttpServletResponse response)
          throws Exception {


          //讀取翻頁參數(shù)

          TurnPageForm turnPageForm=(TurnPageForm)form;

          //從PageController中取出查詢信息,并使用bean提供的調(diào)用接口處理結(jié)果

          HttpSession session=request.getSession();
          PageController pc=(PageController)session.getAttribute("pageController");
          Base queryForm=(Base)session.getAttribute("queryForm");


          pc.setCurrentPage(turnPageForm.getViewPage());

          EmployeeBase service=new EmployeeBase();

          ArrayList result=(ArrayList)service.search(queryForm,pc);

          //根據(jù)參數(shù)將數(shù)據(jù)寫入 request

          request.removeAttribute("queryResult");
          request.removeAttribute("pageController");
          request.setAttribute("queryResult",result);
          request.setAttribute("pageController",pc);

          //forward 到顯示頁面

           

          return mapping.findForward("haveResult");

           

           

          }

          (4)數(shù)據(jù)庫訪問bean中的片斷

          public Collection search(Base base, PageController pc)
          throws SQLException {
          ArrayList emps = new ArrayList();
          ResultSet rs = getSearchResult(base);

          rs.absolute(-1);
          pc.setTotalRowsAmount(rs.getRow());
          setPageController(pc);
          if (rs.getRow() > 0) {

          rs.absolute(pc.getPageStartRow());


          do {
          System.out.println("in loop" + rs.getRow());

          Base b = new Base();
          b.setName(rs.getString("Name"));
          b.setIdCard(rs.getString("IDCard"));
          System.out.println("From db:" + rs.getString("IDCard"));
          emps.add(b);
          if (!rs.next()) {
          break;
          }
          } while (rs.getRow() < (pc.getPageEndRow() + 1));
          }
          return emps;
          }


          (5)在jsp中,翻頁部分的代碼片斷

          <bean:write name="pageController" property="description"/>

          <logic:equal name="pageController" property="hasPrevious" value="true">
          <a pageController" property="previousPage"/>" class="a02">
          Previous
          </a>
          </logic:equal>

          <logic:equal name="pageController" property="hasNext" value="true">
          <a pageController" property="nextPage"/>" class="a02">
          Next
          </a>
          </logic:equal>

          posted on 2012-01-02 12:56 鄭健成 閱讀(66) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 湘潭县| 大竹县| 青浦区| 衡水市| 望奎县| 若羌县| 三门县| 新郑市| 开鲁县| 澄江县| 赤峰市| 兴化市| 眉山市| 寻甸| 双辽市| 广德县| 朝阳市| 抚顺县| 宜昌市| 偃师市| 信宜市| 辉县市| 高淳县| 新营市| 临城县| 甘谷县| 韶关市| 乌拉特中旗| 尼木县| 进贤县| 盖州市| 礼泉县| 嘉兴市| 高阳县| 新邵县| 黎平县| 海淀区| 高要市| 弥勒县| 类乌齐县| 孙吴县|