코어 태그 라이브러리는 변수 설정이나 if-else와 같은 논리 처리에 사용되는 스크립트 코드를 대체하는 태그를 제공한다.
기능 분류 | 태그 | 설명 |
변수 지원 | set | JSP에서 사용할 변수를 설정한다. |
remove | 설정한 변수를 제거한다. | |
흐름제어 | if | 조건에 따라 내부 코드를 수행한다. |
choose | 다중 조건을 처리할 때 사용된다. | |
forEach | 컬렉션이나 Map의 각 항목을 처리할 때 사용된다. | |
forTokens | 구분자로 분리된 각각의 토큰을 처리할 때 사용된다. | |
URL 처리 | import | URL을 사용하여 다른 자원의 결과를 삽입한다. |
redirect | 지정한 경로로 리다이렉트 한다. | |
url | URL을 재작성한다. | |
기타 태그 | catch | 익셉션을 처리할 때 사용한다. |
out | JspWriter에 내용을 출력한다. |
🔔 코어 태그 라이브러리를 사용하려면 JSP 페이지에 다음과 같이 taglib 디렉티브를 추가해야 한다.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.1 변수 지원 태그
변수 지원 태그는 JSTL이 지원하는 태그에서 사용할 수 있는 변수를 설정하기 위해 사용한다. 변수 지원 태그에는 set태그와 remove태그가 있다.
2.1.1 <c:set> 태그
<c:set> 태그는 EL 변수의 값이나 EL 변수의 프로퍼티 값을 지정할 때 사용된다. <c:set> 태그의 첫 번째 사용방법은 EL 변수를 생성하는 것으로서 형식은 다음과 같다.
<c:set var="변수명" value="값" [scope="영역"]/> <-- 자동닫기
<c:set var="변수명" [scope="영역"]>값</c:set> <-- 태그 명시해서 닫기
● var : 값을 저장할 EL 변수의 이름을 지정한다.
● value : 변수의 값을 지정한다. 표현식, EL, 정적인 텍스트를 사용해서 값을 지정할 수 있다.
● scope : 변수를 저장할 영역을 지정한다. 값은 page, request, session, application 중 하나가 온다. 지정하지 않으면 page를 기본값으로 사용한다.
<c:set> 태그는 scope 속성에서 지정한 영역에 값을 저장한다. 예를 들어, scope 속성이 page이고 var 속성과 value 속성이 각각 "varName"과 "varValue"라고 할 때 내부적으로 pageContext.setAttribute(varName, varValue, scope)를 호출해서 지정한 영역의 속성으로 설정한다.
<c:set> 태그를 이용해서 EL 변수를 설정하는 다양한 예시.
<%-- value 속성 사용 예 --%>
<c:set var="name" value="초코쿠키"/>
<c:set var="name" value="<%= m.getFirstName() %>" scope="request" />
<c:set var="name" value="${m.lastName} ${m.firstName}" />
<%-- 태그의 몸체를 값으로 사용하는 예 --%>
<c:set var="name">마카다미아</c:set>
<c:set var="name"><%m=.getLastName() %> <%=m.getFirstName() %> </c:set>
<c:set var="name">${m.lastName}${m.firstName}</c:set>
<c:set> 태그 두 번째 사용방법은 객체의 프로퍼티 값을 설정하는 것이다.
<c:set target="대상" property="프로퍼티이름"value="값" />
<c:set target="대상" property="프로퍼티이름">값</c:set>
2.1.2 <c:remove> 태그
remove 태그는 set 태그로 지정한 변수를 삭제할 때 사용한다.
<c:remove var="varName" [scope="영역"]/>
👻 주의할 점!
var 속성과 scope 속성은 set 태그의 두 속성과 동일한 의미를 갖는다. remove 태그를 사용할 때 주의할 점은 삭제할 변수의 scope를 지정하지 않으면 동일한 이름으로 저장된 모든 영역의 변수를 삭제한다는 것이다.
예시
<c:set var="name" value="초코쿠키" scope="request" />
<c:set var="name" value="마카다미아 쿠키" scope="session" />
<c:remove var="name" />
<c:remove> 태그의 속성 설명 요약 | |||
속성 | 표현식/EL | 타입 | 설명 |
var | 사용 불가 | String | 삭제할 EL 변수 이름 |
scope | 사용 불가 | String | 삭제할 변수가 포함된 영역 |
'최범균의 JSP 2.3 웹프로그래밍 > CH12 표준 태그 라이브러리(JSTL)' 카테고리의 다른 글
01 JSTL이란 (0) | 2024.07.15 |
---|