◎ 총 페이지 수에 따라 페이지 링크를 생성
◎ 각 페이지에 대한 URL을 포함하여 해당 페이지로 이동
View
<c:forEach var="page" begin="1" end="${totalPages}">
<c:url var="pageUrl" value="productAllPage.do">
<c:param name="page" value="${page}" />
</c:url>
<a class="rounded" href="<c:out value="${pageUrl}" />">
<c:out value="${page}" />
</a>
</c:forEach>
코드 설명
◎ JSTL의 <c:forEach> 태그를 사용하여 페이지를 반복하는 루프를 시작
◎ begin 속성은 루프가 시작될 값
◎ end 속성은 루프가 종료될 값
◎ ${totalPages}는 총 페이지 수를 나타냄
<c:forEach var="page" begin="1" end="${totalPages}">
◎ JSTL의 <c:url> 태그를 사용하여 URL을 생성
◎ var 속성은 생성된 URL을 저장할 변수의 이름을 지정
◎ value 속성은 생성될 URL의 기본 부분을 지정합니다.
<c:url var="pageUrl" value="productAllPage.do">
◎ <c:url> 태그 내에서 사용
◎ URL에 파라미터를 추가
◎ name 속성은 파라미터의 이름을 지정
◎ value 속성은 파라미터의 값
◎ ${page}를 사용하여 루프 변수인 page의 값을 지정
<c:param name="page" value="${page}" />
◎ <a> 태그를 사용하여 페이지 링크를 생성
◎ href 속성에는 앞서 생성한 URL을 지정
<a class="rounded" href="<c:out value="${pageUrl}" />">
◎ 속성으로 전달된 값을 안전하게 출력
◎ 링크의 텍스트로는 현재 페이지의 번호가 출력
<c:out value="${page}" />
Controller
// 뷰에서 넘겨준 page
String strPage = request.getParameter("page");
System.out.println("[ProductAllPage] String strPage : " + strPage);
int intPage = 1;
// strPage == null 인 상황은, (메인 페이지 -> 전체 목록 페이지) 처음 올 때!
if (strPage != null) {
intPage = Integer.parseInt(strPage);
}
// page가 유효한 범위를 벗어남
if (intPage < 1 || intPage > totalPages) {
forward.setPath("error.do");
forward.setRedirect(true);
return forward;
}
'웹 > JSP' 카테고리의 다른 글
[JSP] <JavaScript> DOM (0) | 2024.02.23 |
---|---|
[JSP] <HTML> span태그 (0) | 2024.02.22 |
[JSP] <JSTL> 비교 연산자 (0) | 2024.01.31 |
[JSP] <JSTL> varStatus (1) | 2024.01.31 |
[JSP] <JSTL> foreach로 생성된 테이블의 행에 index붙이기 (0) | 2024.01.31 |