List

금요일, 4월 01, 2016

Spring 환경에서 게시판 구축 마지막 - 게시판 블럭 처리

  • 사이즈 지정을 위한 필드값 추가
1
2
3
4
    
    private int blockSize;//블럭의 크기지정
    private int startBlock;//시작번호
    private int endBlock;//끝번호

cs
  • Service단 로직 처리
    • 초기 블럭의 사이즈를 지정해주고
    • bnum 변수에 보여질 페이지 번호들을 하나로 묶은 블럭 지정
    • bnum을 활용해서 시작 블럭번호와 끝번허 블럭 번호를 지정
    • 끝블럭이 전체 페이지보단 커선 안됨으로 마지막에 예외처리
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    //초기 block크기 지정
        sch.setBlockSize(3);
        
//        1 2 3 > 1
//        4 5 6 > 2
//        7 8 9 > 3
        int bnum = (int)Math.ceil(sch.getCurPageNum()/(double)sch.getBlockSize());
        
        //시작 번호  : ( bnum  -1)*블럭크기 +1
        sch.setStartBlock( (bnum-1)*sch.getBlockSize()+1);
        //마지막 블럭 번호
        sch.setEndBlock( bnum * sch.getBlockSize() );
        
        //끝번호보단 페이지 블럭이 커서는 안됨으로
        if( sch.getEndBlock() > sch.getPageCnt() ){
            sch.setEndBlock(sch.getPageCnt());
        }
cs

  • view 단
    • 왼쪽이동 화살표와 오른쪽 이동 화살표를 만듬
    • 파라미터 값으로는 해당 시작블럭값보다 하나 적은수를 pagenum으로 보냄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<!-- 페이지 블락처리
    시작 page 번호가 블럭 크기보다 크면 왼쪽이동 화살표 가보이게
    화살표는 현제 페이지 번호를 클릭한 수를 보내면 된다
    결국, 화살표를 클릭했을때 -->
<c:if test="${board.startBlock > board.blockSize}" >
    <a href="javascript:go(${board.startBlock-1})">
        왼쪽이동
    </a>
</c:if>
 
 
<c:if test="${board.startBlock < board.blockSize}" >
    <a href="javascript:go(${board.endBlock+1})">
        오른쪽이동
    </a>
</c:if>
cs

  • 리스트 하는 페이지도 시작블럭~ 끝블럭 부분만 하게 처리

1
<c:forEach var="pnum" begin="${board.startBlock }" end="${board.endBlock }">
cs

댓글 없음:

댓글 쓰기