게시판을 만들다 보면 게시글 번호를 가져야 되는데
PRIMARY KEY, AUTO_INCREMENT 가진 컬럼으로 지정 할 경우
게시물이 삭제 되면 그 번호가 없는 게시판이 출력이 되게 된다.
게시물이 삭제가 되도 번호는 순서대로 유지되게 하려면 일단 컨트롤러에서 코드 작성이 필요
예 ) 게시물이 34개인 출력은 10개 총 페이지 갯수는 4페이지인 경우
1페이지에서는 34 ~ 25 번호
2페이지에서는 24 ~ 15 번호
3페이지에서는 14 ~ 5 번호
4페이지에서는 4 ~ 1 번호
이렇게 출력이 되야 된다.
int p1 = total - 0;
int p2 = total - 10;
int p3 = total - 20;
int p4 = total - 30;
이렇게 페이지마다 첫번째 값을 구하는 규칙적인 계산식이 나오게 된다.
최종적으로
1pge인 경우
int startRowNo = total - (1-1)*10;
2pge인 경우
int startRowNo = total - (2-1)*10;
1, 2는 viewPage 현재 보고 있는 페이지 번호로 설정 하면 된다.
int startRowNo = total - (viewPage - 1)*unit;
unit은 보여줄 게시물 갯수
model.addAttribute("rowNumber", startRowNo); JSP에 보내기
JSP 코드 (JSTL)
<c:set var="cnt" value="${rowNumber }" /> <!-- 번호에서 사용 할 변수 -->
<c:forEach var="result" items="${resultList }">
<tr align="center">
<td width="15%"><c:out value="${cnt }" /></td>
<td align="left" width="40%"><c:out value="${result.title }" /></td>
<td width="15%"><c:out value="${result.name }" /></td>
<td width="15%"><c:out value="${result.rdate }" /></td>
<td width="15%"><c:out value="${result.hits }" /></td>
</tr>
<c:set var="cnt" value="${cnt-1 }" />
</c:forEach>
'전자정부프레임워크' 카테고리의 다른 글
상세보기 + 조회수 (0) | 2024.01.06 |
---|---|
검색 기능 + 페이징 처리 (1) | 2024.01.06 |
오라클, MySQL 페이징 쿼리문 + iBATIS (0) | 2024.01.05 |
log4j2.xml (2) | 2024.01.04 |
패키지 등록 (1) | 2024.01.02 |