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
'프로그래밍 > JAVA' 카테고리의 다른 글
JSP 에서 ASP의 response.end 처럼 하기 (0) | 2019.04.23 |
---|---|
java, Eclipse 사용시 탭을 공백문자로 바꾸기. tab-to-space (0) | 2019.04.22 |
JSP, JSTL Core Tag의 종류 (0) | 2019.04.22 |
java, Spring MVC 구조 설명 (0) | 2019.04.18 |
[Eclipse] Build path specifies execution environment JavaSE-1.6. warning 제거 방법 (0) | 2019.04.17 |