반응형

JSTL의 이해 및 활용

1. JSTL의 이해

  • http://tomcat.apache.org/taglibs/
  • JSTL이란 JSP 표준라이브러리(JSP Standard Tag Library) 이다.
  • JSP에서 사주 사용하는 기능(반복과 조건, 데이타 관리 포맷, XML 조작, 데이타베이스 액세스)을 구현하는 커스텀 태그 라이브러리 모음이다.
  • 시간, 날짜, 숫자의 포맷이나 문자열 가공등의 처리에서 비즈니스로직과 프리젠테이션 로직을 분리할 수 있게 해준다.
  • JSTL은 EL(Expression Language)를 사용하여 표현한다.

2. JSTL 라이브러리

2.1 JSTL 라이브러리

  • 아래와 같이 다섯가지의 라이브러리가 있다.
라이브러리 기능 URI 식별자 접두어
코어 일반 프로그램 언어에서 제공하는 변수선언, 
조건/제어/반복문등의 기능을 제공한다.
http://java.sun.com/jsp/jstl/core c
포맷팅 숫자,날짜,시간을 포맷팅 하는 기능과 국제화, 다국어 지원 기능을 제공한다. http://java.sun.com/jsp/jstl/fmt fmt
함수 함수 문자열을 처리하는 함수를 제공한다. http://java.sun.com/jsp/jstl/functions fn
데이터베이스 데이터베이스 데이터베이스의 데이터를 입력/수정/삭제/조회하는 기능을 제공한다. http://java.sun.com/jsp/jstl/sql sql
XML 처리 XML처리 XML 문서를 처리할 때 필요한 기능을 제공한다. http://java.sun.com/jsp/jstl/xml x

3. Core Tag의 이해

  • JSTL 태그 라이브러리 중에 가장 많이 사용하는 태그이다.
  • <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>로 선언을 해줘야 사용할 수 있다.

1. <c:set /> Tag

- JSP의 setAttribute()와 같은 역할

- <c:set var="변수명" 

value="변수에 넣을 값"

property="자바빈 객체 or Map 객체 값을 설정할 프로퍼티 명"

scope="변수 공유 범위" />


2. <c:remove /> Tag

- JSP의 removeAttribute()와 같은 역할

- <c:remove var="변수명" 

scope="변수 공유 범위" />


3. <c:out /> Tag

- '<%=...>'와 같다. JSP의 표현식을 대체

- <c:out var="변수명" 

default="기본값"

escapeXML="true|false" />


4. <c:catch /> Tag

- Body에서 실행되는 코드의 예외 처리

- <c:catch var="에러메시지가 포함될 변수명" />


5. <c:if /> Tag

- 조건문

- <c:if test="조건 판별식"

var="변수명"

scope="변수 공유 범위" />


6. <c:choose />, <c:when />, <c:otherwise />

- Switch문과 동일, 여러개의 when 태그와 하나의 otherwise 태그를 가진다

- <c:if /> 태그에 else가 없으므로 대체식으로도 많이 사용

- <c:choose>

<c:when test="조건 판별식"> .... </c:when>

<c:when test="조건 판별식"> .... </c:when>

<c:when test="조건 판별식"> .... </c:when>

</c:choose>


7. <c:forEach /> Tag

- 객체 전체에 걸쳐 반복 실행에 사용

- <c:forEach var="현재 아이템의 변수명" 

items="반복 데이터가 있는 아이템 Collection 명"

begin="시작 값, 기본값은 0"

end="종료 값"

step="증가 값"

varStatus="반복 상태 값을 지닌 변수" />

 

※ varStatus는 forEach의 상태를 알 수 있는 값이 들어 있다.

  • $(변수.current} : 현재의 인덱스
  • $(변수.index} : 0부터의 인덱스
  • $(변수.count} : 1부터의 인덱스
  • $(변수.first} : 현재 루프가 처음인지 확인
  • $(변수.last} : 현재 루프가 마지막인지 확인
  • $(변수.begin} : forEach문의 시작 값
  • $(변수.end} : forEach문의 끝 값
  • $(변수.step} : forEach문의 증가 값


8. <c:forTokens /> Tag

- 문자열을 구분자(delimiter)로 분할

- <c:forTokens var="현재 아이템의 변수 명"

items="반복 데이터가 있는 아이템 Collection 명"

delims="구분자, 여러개 지정 가능"

begin="시작 값, 기본 값은 0"

end="종료 값"

step="증가 값"

varStatus="반복 상태 값을 지닌 변수" />

 

9. <c:url /> Tag

- URL의 생성

- <c:url var="생성한 URL이 저장될 변수 명"

value="생성할 URL" 

scope="변수 공유 범위" />

 

 

10. <c:param /> Tag

- 파라미터 추가

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

 

11. <c:import /> Tag

- 페이지 첨부

- import 태그 내에 param 태그도 사용할 수 있다.

- <c:import url="첨부할 URL" />

 

 

12. <c:redirect /> Tag

- sendRedirect()와 동일

- <c:redirect url="이동할 URL" />

 

 

 

참조 : http://wiki.gurubee.net/pages/viewpage.action?pageId=26740270

 

JSTL의 이해 및 실습 - 12.구루비 Dev 스터디 - 개발자, DBA가 함께 만들어가는 구루비 지식창고!

JSTL의 이해 및 실습 Added by 김정식, last edited by 김정식 on 9월 18, 2012  (view change) JSTL의 이해 및 활용 1. JSTL의 이해 http://tomcat.apache.org/taglibs/ JS

wiki.gurubee.net

 

반응형

+ Recent posts