본문 바로가기

Servlet&JSP

JSTL core 라이브러리 정리

반응형

- JSTL core 라이브러리

jsp 페이지에 core 라이브러리를 사용할 수 있도록 taglib 디렉티브 명시

<%@ taglib prefix="c" uri=http://java.sun.com/jsp/jstl/core %>

prefix : 접두사

uri : core 라이브러리가 존재하는 위치

 

1) <c:set var="변수명" value="설정값" target="객체" property="값" scope="범위" />

- 지정된 변수에 값을 할당하는 태그

 

target은 값을 설정하고자 하는 객체를 명시한다. target에 객체를 명시하면 명시된 객체에 값을 셋팅할 수 있다.

property는 taregt에 명시된 객체의 프로퍼티를 의미하며 명시된 프로퍼티에 value에 명시한 설정값을 셋팅합니다.

scope은 값을 셋팅한 범위를 의미(page,request,session,application), 생략하면 scope="page"

 

2) <c:remove var="변수명" scope="범위" />

- 설정된 속성을 제거하는 태그

scope은 값이 셋팅된 범위를 의미(page,request,session,application), 생략하면 scope="page"

 

3) <c:out value="출력값" default="기본값" escapeXml="true/false"  />

- 지정된 값을 출력하는 태그

 

value 에 명시한 값을 출력하며 value 가 null 일경우 default에 기술한 값을 출력

escapeXml는 기본값이 false이면 true라고 지정하면 <과 같은 특수문자를 &lt; 엔티티 레퍼런스 형태로 변환한다.

즉, escapeXml를 true라고 하면 HTML 태그를 인정하지 않는다는 의미

 

4) <c:if test="조건" var="변수명" scope="범위" />

- 조건이 true이면 수행문을 수행하는 태그

 

test에서 조건을 체크해서 true 또는 false가 되면 var에 지정된 변수의 그 값이 담김

scope은 var에 지정한 변수가 셋팅되는 범위를 의미(page,request,session,application), 생략하면 scope="page"

 

5) <c:choose>

      <c:when test="조건"></c:when>

      <c:when test="조건"></c:when>

      <c:otherwise></c:otherwise>

   </c:choose>

- 여러개의 when 태그에 명시한 조건을 체크하고 조건에 만족하는 수행문을 수행, 만족하는 조건이 없으면 otherwise에 명시한 수행문을 수행

 

6) <c:forEach items="객체명" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수" />

- 수행문을 반복해서 수행

 

items : 속성에 인덱스가 존재하는 객체를 지정하여 반복수행할 때 사용

begin : 수행문을 반복시킬 시작 인덱스 지정

end : 수행문의 반복이 끝날 인덱스 지정

step : 증감식 지정

var : 현재 반복하고 있는 값이 저장되는 변수지정

varStatus : 반복 상태를 지정하는 변수 지정

 

예) varStatus 의 사용예

 

<c:forEach var="list" items="itemList" varStatus="status">

     ${status.index} <-  0부터 시작하는 인덱스 표시

     ${status.count} <- 1부터 시작하여 1씩 증가

     ${status.first}  <- forEach 반복의 처음 일 경우 true

     ${status.last}  <- forEach 반복의 마지막 일 경우 true

</c:forEach>

 

예) forEach를 사용할 때 List의 크기 구하기

<%@ taglib prefix="fn" uri=http://java.sun.com/jsp/jstl/functions  %> <- 페이지 상단에 명시

${fn:length(itemList)}

 

7) <c:forTokens items="객체명" delims="구분자" begin="시작 인덱스" end="끝 인덱스" step="증감식" var="변수명" varStatus="상태변수" />

- 문자열을 구분자로 잘라내어 출력

 

items : 잘라내고자 하는 문자열이 담겨있는 객체

delims : 구분자 지정

begin : 시작 인덱스

end : 끝 인덱스

step : 증감식

var : 잘라진 문자열이 담기는 변수

varStatus : 반복 상태지정 변수

 

8) <c:catch var="변수명" />

- 예외 발생시 예외 처리 태그

 

예외가 발생할 수 있는 수행문 앞 뒤에 catch 태그를 배치하고 예외가 발생하면

var에 지정한 변수명에 예외 문구를 저장한다. out 태그 또는 el 를 통해 예외 문구를 호출해 출력할 수 있다.

 

9) <c:import url="URL" var="변수명" scope="범위" varReader="변수명" context="context" charEncoding="인코딩" />

- 지정한 url 페이지의 내용을 읽어와 출력

 

10) <c:redirect url="URL" context="context" />

- 지정한 url로 redirect

 

11) <c:url var="변수명" scope="범위" value="값" context="context" />

- url 생성

 

12) <c:param name="파라미터명" value="값" />

- 파라미터로 전달하고 싶은 값을 name에 기술된 파라미터명과 value에 명시한 값의 쌍으로 전송

 

반응형