JSP

JSTL - JSP Standard Tag Library

안녕로봇 2017. 3. 26. 23:16

JSTL

- 자주 사용하는 사용자 정의 태그(Custom Tag)를 모아서 표준으로 만들어 놓은 것


- 액션태그는 일종의 시스템이 제공하는 커스텀 태그 예) <jsp:userBean id="vo" class="study.BoardVO">

- 로직부분의 jsp코드를 태그로 대체


JSTL 환경 설정

- http://jstl.java.net에 접속 javax.servlet.jsp.jstl-1.2.1.jar 다운로드

- (이클립스 기준) 프로젝트의 /WEB-INF/lib폴더에 복사

- JSP 문서 상단에 태그 라이브러리를 지정     예) <% taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


JSTL core

- 변수 선언, 삭제등, if, for 문 같은 제어문, URL처리등에 사용

- prefix 접두어: uri에 명시된 값 대신 접두어로 대신 사용. 태그 시작에 접두어 사용 예) <c:~~>


JSTL core 기능별 분류


표현언어 지원 기능

- <c:catch> 코드 예외 잡을때, <c:out>, <c:remove>, <c:set>

흐름 제어 기능

- <c:choose>, <c:when>, <c:otherwise>

- <c:forEach>, <c:forTokens>, <c:if>

URL 관리기능

- <c:import>, <c:param>

- <c:redirect>, <c:param>

- <c:url>, <c:param>


<c:set> 태그

- <c:set var="varName" value="value" target="targetObjectName" property="propertyName" scope="session" />

- target속성: 속성값으로 자바빈 객체명이나 Map 객체명이 온다.

- property 속성: 속성값으로 자바빈 객체나 Map  객체의 값을 설정할 프로퍼티 명이 옴

- scope 속성: 생략시 기본값으로 page가 설정


예시)

- <c:set var="name" value="hong" />

- <c:set var="sum" value="${price}" scope="request" />

- <c:set value="seoul" target="person" property="address" /> person 객체의 address 프로퍼티 값을 seoul로 설정


<c:out> 태그

- <c:out value="${tel}" /> 근데 그냥 ${tel}만 써도 되서 잘 안쓰기 될듯(?) cf.) 표현식의 <%=tel %>,  out.println(tel);


<c:remove>태그

- page/request/session/application 범위의 변수(속성)을 제거할때 쓴다

- <c:remove var="varName" scope="session" />

- 변수를 제거할 떄 scope이 맞지 않으면 제거되지 않음 (역시 생략시 page 기본값)


<c:if>태그

- <c:if test="condition" var="varName" scope="session"></c:if>