본문 바로가기

웹/JSP

[JSP] <JSTL> 페이징 번호 출력

총 페이지 수에 따라 페이지 링크를 생성

각 페이지에 대한 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