java pagebar

kxsxh·2024년 7월 11일
0

JAVA

목록 보기
16/16
 
   // === 페이지바 만들기 === //
      int blockSize = 10;
      // blockSize 는 1개 블럭(토막)당 보여지는 페이지번호의 개수이다.
      /*
                       1  2  3  4  5  6  7  8  9 10 [다음][마지막]  -- 1개블럭
         [맨처음][이전]  11 12 13 14 15 16 17 18 19 20 [다음][마지막]  -- 1개블럭
         [맨처음][이전]  21 22 23
      */
            
      int loop = 1;
      /*
          loop는 1부터 증가하여 1개 블럭을 이루는 페이지번호의 개수[ 지금은 10개(== blockSize) ] 까지만 증가하는 용도이다.
       */
            
      int pageNo = ((currentShowPageNo - 1)/blockSize) * blockSize + 1;
      // *** !! 공식이다. !! *** //
            
      /*
          1  2  3  4  5  6  7  8  9  10  -- 첫번째 블럭의 페이지번호 시작값(pageNo)은 1 이다.
          11 12 13 14 15 16 17 18 19 20  -- 두번째 블럭의 페이지번호 시작값(pageNo)은 11 이다.
          21 22 23 24 25 26 27 28 29 30  -- 세번째 블럭의 페이지번호 시작값(pageNo)은 21 이다.
          
          currentShowPageNo         pageNo
         ----------------------------------
               1                      1 = ((1 - 1)/10) * 10 + 1
               2                      1 = ((2 - 1)/10) * 10 + 1
               3                      1 = ((3 - 1)/10) * 10 + 1
               4                      1
               5                      1
               6                      1
               7                      1 
               8                      1
               9                      1
               10                     1 = ((10 - 1)/10) * 10 + 1
              
               11                    11 = ((11 - 1)/10) * 10 + 1
               12                    11 = ((12 - 1)/10) * 10 + 1
               13                    11 = ((13 - 1)/10) * 10 + 1
               14                    11
               15                    11
               16                    11
               17                    11
               18                    11 
               19                    11 
               20                    11 = ((20 - 1)/10) * 10 + 1
               
               21                    21 = ((21 - 1)/10) * 10 + 1
               22                    21 = ((22 - 1)/10) * 10 + 1
               23                    21 = ((23 - 1)/10) * 10 + 1
               ..                    ..
               29                    21
               30                    21 = ((30 - 1)/10) * 10 + 1
      */
            
            
      String pageBar = "<ul style='list-style: none;'>";
      String url = request.getContextPath()+"/mscore/list";
            
      // === [맨처음][이전] 만들기 === //
      if(pageNo != 1) {
         pageBar += "<li style='display:inline-block; width:30px; font-size:12pt;'><a href='"+url+"?page=1' title='처음'>&#x226A</a></li>";
         pageBar += "<li style='display:inline-block; width:30px; font-size:12pt;'><a href='"+url+"?page="+(pageNo-1)+"' title='이전'>&#x003C</a></li>";
      }
      
      while( !(loop > blockSize || pageNo > totalPage) ) {
         
         if(pageNo == currentShowPageNo) {
            pageBar += "<li style='display:inline-block; width:30px; font-size:12pt; border:solid 1px gray; color:red; padding:2px 4px;'>"+pageNo+"</li>";  
         }
         else {
            pageBar += "<li style='display:inline-block; width:30px; font-size:12pt;'><a href='"+url+"?page="+pageNo+"'>"+pageNo+"</a></li>"; 
         }
         
         loop++;
         pageNo++;
         
      }// end of while-----------------------
      
      
      // === [다음][마지막] 만들기 === //
      if( pageNo <= totalPage ) {
         pageBar += "<li style='display:inline-block; width:30px; font-size:12pt;'><a href='"+url+"?page="+pageNo+"' title='다음'>&#x003E</a></li>";
         pageBar += "<li style='display:inline-block; width:30px; font-size:12pt;'><a href='"+url+"?page="+totalPage+"' title='마지막'>&#x226B</a></li>"; 
      }
      
      pageBar += "</ul>";
      

0개의 댓글