본문 바로가기
Programming/java 고급과정

JSTL(Java Standard Tag Library) 커스텀 태그

by 막이 2012. 4. 12.

커스텀 태그란?

자신이 직접 정의할 수 있는 태그
자신이 직접 원하는 기능을 구현하여 작성할 수 있는 태그
일반 태그로 구현하지 못했던 한계점을 극복할 수 있다.
그리고 작성한 커스텀 태그를 라이브러리로 작성해둔다면 다음 개발시에는 가져다 쓰기만 하면 되므로 매우 효율적인 프로그래밍이 가능함. 기본적인 기능은 sun사에서 JSTL으로 제공하고 있다.
최대한 자바코드를 줄이기 위해 거의 모든 자바 코드를 커스텀태그로 바꾸어 놓은 것이 JSTL

<다운로드 및 셋팅>

http://tomcat.apache.org/taglibs/standard/

경로로 접속해서

JSTL 1.1 버전을 다운받아

binaries/ 폴더안의
jakarta-taglibs-standard-1.1.2.zip 을 받아 압축을 푼다.
압축을 풀면 jstl.jar와 standard.jar 파일이 있다
이 두 jar파일을 이클립스 프로젝트의 lib폴더 안에 넣어주면

JSTL을 사용할 준비 완료!

라이브러리

기능

URI

접두어

코어

다른 프로그램 언어와 유사

http://java.sun.com/jsp/jstl/core

c

I18N

날짜,시간 포매팅, 다국어 지원

http://java.sun.com/jsp/jstl/fmt

fmt

SQL

데이터 입력,수정,삭제,조회

http://java.sun.com/jsp/jstl/sql

sql

XML

XML처리시 필요한 기능

http://java.sun.com/jsp/jstl/xml

x

함수

문자열 처리 함수

http://java.sun.com/jsp/jstl/fuctions

Fn

 

 <<JSTL을 이용한 예제>>

<%@ page contentType="text/html; charset=EUC-KR"%>

<!-- JSTL 코아라이브러리 사용을 위한 page direcitve 설정 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!-- EL은 JSTL에서 먼저 사용되었고, JSP 2.0 에서 default로 지원하게 되었다 -->

<h3>o taglib의 c:set, c:remove, c:out을 사용</h3>

<c:set var="num1" value="100" scope="page"/>
<!-- page.setAttribute("num1",100) -->
<c:set var="num2"/><!-- scope 미정의시 default는 page -->

1. num1은 empty : ${empty pageScope.num1} num1=${pageScope.num1}
<br/>

2. num2은 empty : ${empty num2} num2=${num2} <br/>

3. num1+num2 : ${num1+pageScope.num2}<br/>

4. c:out을 사용한 num1+num2 : <c:out value="${num1+num2}"/><br/>
<hr/>

<c:set var="num1" value="${num1+100}"/>
5. num1 : ${num1}<br/><hr/>

6. num1은 empty : ${empty num1} num1=[_${num1}_]</br>

7. num2은 empty : ${empty num2} num2=[_${num2}_]