- 사이즈 지정을 위한 필드값 추가
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 |
댓글 없음:
댓글 쓰기