<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
는 JSP 페이지에서 JSTL(JSP Standard Tag Library)의 Core 태그 라이브러리를 사용하기 위한 선언입니다.
JSTL은 JSP 개발을 더욱 간편하게 만들기 위한 태그 라이브러리입니다.
Core 태그 라이브러리는 JSP 페이지에서 일반적인 로직 처리 및 데이터 조작을 수행하는 데 사용됩니다.
이 라이브러리를 사용하면 자바 코드를 작성하지 않고도 JSP 페이지에서 조건문, 반복문, 변수 설정 등의 작업을 처리할 수 있습니다.
위의 태그 라이브러리 선언은 JSP 페이지에서 Core 태그 라이브러리의 기능을 사용할 수 있도록 설정하는 역할을 합니다.
prefix는 태그 라이브러리에 접근할 때 사용되는 접두사를 정의하며, uri는 해당 태그 라이브러리의 위치를 지정합니다. 위의 선언은 c라는 접두사를 사용하여 Core 태그 라이브러리에 접근하고, http://java.sun.com/jsp/jstl/core 위치에서 해당 태그 라이브러리를 찾을 수 있다는 것을 나타냅니다.
선언된 이후에는 JSP 페이지에서 Core 태그 라이브러리의 태그들을 사용할 수 있습니다. 일반적인 Core 태그에는 <c:if>, <c:forEach>, <c:set> 등이 있으며, 이러한 태그들을 사용하여 JSP 페이지에서 조건문, 반복문, 변수 설정 등을 처리할 수 있습니다.
예를 들어, <c:forEach> 태그를 사용하여 배열 또는 컬렉션의 요소들을 반복적으로 처리할 수 있고, <c:if> 태그를 사용하여 조건에 따라 다른 내용을 표시할 수 있습니다. 이러한 Core 태그들은 JSP 개발을 보다 효율적이고 가독성이 좋도록 도와줍니다.
JSTL Core 태그 라이브러리를 사용하기 위해선 JSTL 라이브러리가 프로젝트에 포함되어 있어야 합니다. 따라서, JSTL 라이브러리를 추가로 설정해주어야 합니다.
implementation 'javax.servlet:jstl:1.2'
build.gradle에 추가한 설정 코드
<c:choose>
<c:when test="${not empty TestList.list}">
<input type="hidden" name="TestListSize" id="TestListSize" value="${TestList.totalCount}">
</c:when>
<c:otherwise>
<input type="hidden" name="TestListSize" id="TestListSize" value="0">
</c:otherwise>
</c:choose
여기서 TestList는 JSP 페이지의 데이터 모델이나 객체를 나타내는 변수입니다.
Service단에는 PageInfo라는 페이징 처리 class를 통해 'TestList'라는 객체를 생성하는 예시를 생각해볼 수 있습니다.
public PageInfo TestList(Map<String, Object> params, PageInfo pageInfo) {
...
}
이렇게 생성한 객체는 JSP 페이지로 전달하는 역할을 수행할 수 있습니다. 이를 위해 JSP 페이지에서 ${TestList}와 같이 EL(Expression Language)을 사용하여 TestList객체를 참조할 수 있습니다.
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
추가적으로 value="${TestList.totalCount}
이 el문은 PageInfo 클래스에서 선언된 totalCount를 가져와 사용한 것으로
pageInfo.setTotalCount(Mapper.getListCount(params));
서비스 단에서는 이렇게 db를 통해 조회해 온 값을 넣을 수 있습니다.