[JavaScript] JSTL
사용 이유
- jsp에서는 java 문법을 사용하기 위해서 <% %> 이 곳 안에 코드를 써야 하는 데 html과 함께 보기에는 가독성에서 문제가 있다.
- 그렇기에 같은 성능이며 가독성이 좋은 JSTL을 씀
사용 방법
- web.xml or JSP 문서 상단에 라이브러리를 import 하여 사용 가능
JSTL 태그
[변수 지원]
<c:set> : JSP 페이지에서 변수를 지정
<c:set var = "name" value = "김경민" [scope="scope 속성 중 하나"]>
-> scope 속성으로는 page, request, session, application
<c:remove> : 속성 내 변수를 삭제
<c:remove var = "name" [scope="scope 속성 중 하나"] />
[흐름 제어]
<c:if> : 속성 내의 조건의 결과가 참이면 실행(조건문)
<c:set var = "name" value = "김경민" />
<c:if test = "${name eq '김경민'}">
<c:out value = "${str}" />
</c:if>
<c:choose> : 속성 내의 결과를 여러 개로 분리 가능하며 결과가 없을 경우 기본 결과를 제공(switch문)
<c:choose>
<c:when test = "${name eq '김경민'}">
<p>김경민입니다.</p>
</c:when>
<c:when test = "${name eq '홍길동'}">
<p>홍길동입니다.</p>
</c:when>
<c:otherwise>
<c:out value = "${str}" />
</c:otherwise>
</c:choose>
<c:forEach> : 지정된 범위 내에서 반복을 통해 flow를 제어하기 위한 태그(반복문)
<c:forEach var = "age" begin = "10" end = "20" step = "2">
<c:out value = "${age}" />
</c:forEach>
<c:forTokens> : 구분자로 분리된 각각의 토큰을 처리할 때 사용
[URL 처리]
<c:import> : url을 이용해 다른 자원을 JSP 페이지에 추가
<c:redirect> : response.sendRedirect() 기능을 수행
<c:redirect url = "www.wave-m.tistory.com">
[<c:param name = "tistory" value ="김경민 티스토리">]
...
</c:redirect>
<c:url> : 요청 매개변수로부터 URL을 생성
<c:url var = "name" value = "www.wave-m.tistory.com" [scope="scope 속성 중 하나"]>
[<c:param name = "tistory" value ="김경민 티스토리">]
...
</c:url>
[기타 태그]
<c:catch> : 예외 처리에 사용
<c:out> : JspWriter에 내용을 처리한 후 출력
<c:out value ="김경민" default="이름" [escapeXml="boolean값"] />
-> escapeXml이 true이면 해당 value 그대로 화면에 출력
escapeXml이 false이면 value의 값에 해당하는 특수 문자로 변환 되어 화면에 출력
JSTL의 비교연산
empty : list, map 등의 객체의 값 유무
eq : ==와 같은 의미
ne : != 와 같은 의미
lt : <와 같은 의미
gt : >와 같은 의미
le : <= 와 같은 의미
ge : >= 와 같은 의미