-
JSTL(JSP Standard Tag Library) 정리Web Programming 2020. 9. 15. 19:32반응형
JSTL(Jsp Standard Tag Library) : 자바서버 페이지 표준 태그 라이브러리
JSTL은 JSP페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다.
일반적으로 JSTL은 EL(Expression Language)와 조합하여 사용하는 경우가 많다.
<% @taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
core를 header에 추가해서 사용할 수 있다.
<c:set>
<c:set var="변수이름" value="값" />
EL을 사용해 ${변수이름} 으로 값을 불러와 사용할 수 있다. 이 변수는 page 데이터 영역에서 선언되기 때문에 <%= 변수이름 %>으로 출력이 불가능하다.
<c:remove>
<c:remove var="변수이름" />
set 태그를 통해 선언한 변수를 제거할 때 사용된다. scope 속성을 통해 원하는 영역의 변수만 제거할수도 있다.
<c:out>
<c:set var="test" value="<b>테스트 해보자</b>"></c:set> <c:out value="${test}" escapeXml="true"></c:out>
변수 내용을 출력할 때 사용되는 태그다. EL로도 출력할 수 있지만 c:out 태그의 escapeXml 속성을 통해 태그를 문자열 형식으로 출력하거나 적용해서 출력할 수 있다.
<c:if test="boolean">
<c:if test="${1 > 0}" var="result"> 참이니까 출력 </c:if> ${result}
일반적인 코딩에서의 if문 역할을 하는 태그다. test 속성이 true일 경우 실행하고 false일 경우 실행하지 않는다. test 내부에는 EL을 활용하여 구체적으로 활용이 가능하다.
<c:choose>
<c:set var="x" value="1"/> <c:choose> <c:when test="${x > 0}"> ${x}는 양수입니다. </c:when> <c:when test="${x < 0}"> ${x}는 음수입니다. </c:when> <c:otherwise> ${x}는 숫자가 아닙니다. </c:otherwise> </c:choose>
일반적인 코딩에서의 switch문 역할을 하는 태그다. case는 <c:when>으로, default는 <c:otherwise>로 대치된다. when 태그에 test 속성을 주고 true일 경우 실행한다.
<c:forEach>
<c:forEach var="num" begin="1" end="10"> ${num}<br> </c:forEach>
일반적인 코딩에서의 for문 역할을 하는 태그다. begin 속성으로 시작 값을, end 속성으로 종료 값을 설정해준다.
<c:forEach var="num" begin="1" end="10" step="2"> ${num}<br> </c:forEach>
step 속성은 증가치를 설정해줄 수 있다. 위와 같이 설정하면 1부터 2씩 증가하는 loop를 만들 수 있다.
<c:set var="array">a, b, c, d</c:set> <c:forEach var="num" items="${array}"> ${num}<br> </c:forEach>
set으로 배열을 지정하고, forEach문을 통해 배열의 값을 전부 출력해줄 수 있다.
<c:forTokens>
<c:forTokens var="temp" items="Hello My Name is Cluster-Taek" delims=" -"> ${temp}<br> </c:forTokens>
token이 없어질 때까지 for문을 돌려준다. 위와 같이 items를 설정해주고 delims 속성을 통해서 문자열을 잘라주면 token을 반환한다. delims 속성에는 현재 " "와 "-"가 들어있지만 다른 문자들도 추가가 가능하다.
반응형'Web Programming' 카테고리의 다른 글
프로세스(Process)와 쓰레드(Thread), 멀티쓰레드(Multi-Thread) (0) 2020.09.17 3 Way-Handshake 란? (0) 2020.09.16 컴포넌트(Component)와 모듈(Module) (0) 2020.09.11 Question (0) 2020.09.11 Code Bank (0) 2020.09.10