JSTL
JSTL 은 JSP Standard Tag Library의 약어로 JSP에서 사용 가능한 표준 태그 라이브러리입니다. JSTL 에서 제공하는 태그를 사용하면 JSP 코드가 깔끔하고 가독성이 좋게 됩니다.
JSTL 라이브러리를 사용하는 이유
다음은 JSTL 의 학습에 앞서 JSTL 이 등장하게 된 배경을 설명하기 위한 예입니다. JSP 에서 조건에 따라 서로 다른 HTML 의 태그가 수행될 수 있도록 하기 위해서 스크립트릿에서 제어문을 사용한 예입니다.
<%
if(request.getParameter("color").equals("1")){
%>
<span style="color: red;" >빨강</span>
<%
} else if(request.getParameter("color").equals("2")){
%>
<span style="color: green;">초록</span>
<%
}else if(request.getParameter("color").equals("3")){
%>
<span style="color :blue;">파랑</span>
<%
}
%>
HTML 코드와 스크립트릿을 함께 사용하게 되면 위의 예제처럼 코드가 복잡하고 가독성이 떨어집니다. 이러한 문제점을 해결하기 위해 JSTL 이 등장하게 되었습니다. JSTL 은 다양한 태그를 제공함으로써 다음 예에서 살펴볼 수 있듯이 코드를 깔금하게 하고 가독성을 좋게 합니다.
<c:if test ="${param.color ==1}">
<span style="color: red; ">빨강 </span>
</c:if>
<c:if test ="${param.color ==2}">
<span style="color: green; ">초록 </span>
</c:if>
<c:if test ="${param.color ==3}">
<span style="color: blue; ">파랑 </span>
</c:if>
위 문장은 파라미터로 넘겨진 color 에 저장된 값인 1일 경우 빨간색으로 '빨강' 이라고 출력하고 2일 경우 초록색으로 '초록' 으로 출력하고 3일 경우 파란색으로 '파랑' 이라고 출력하는 예입니다.
JSTL 라이브러리
JSP 는 스크립트릿과 자바 코드 등 여러 코드들이 섞여서 복잡한 구조로 되어 있는데, 간결하고 이해하기 쉽게 코딩을 하기 위해 자신만의 태그를 추가할 수 있습니다. 이렇게 기본적으로 제공되는 것이 아닌 자신이 추가한 태그를 커스텀 태그라고 합니다.
즉 커스텀 태그는 JSP 를 작성할 때 자주 사용되는 자바 코드를 웹에서 사용할 수 있는 태그 형태로 만드는 기술을 말합니다.
작성한 커스텀 태그를 모아서 압축한 후 이를 배포해서 사용하는데 이를 커스텀 태그 라이브러리라고 합니다. 라이브러리란 여러 프로그램이 공통으로 사용하는 코들르 모아놓은 코드의 집합을 말합니다.
JSTL(JSP 표준 태그 라이브러리의 약어) 은 커스텀 태그들을 개별적으로 만들어 쓰다 보니 일관성이 없어서 이를 표준화한 것으로 JSTL도 공통으로 사용되는 코드의 집합입니다. 하지만 이 라이브러리는 우리가 보통 프로그래밍을 할 때 사용되는 라이브러리와는 달리 JSP 페이지 안에서 사용할 수 있는 커스텀 태그를 제공합니다.
JSTL 에서 제공해주는 기능은 다음과 같습니다.
- 간단한 프로그램 로직의 구현(자바의 변수 선언, if문, for문 등에 해당하는 로직)
- 다른 JSP 페이지 호출 (<:redirect>, <c:import>)
- 날짜, 시간, 숫자의 포맷
- JSP 페이지 하나늘 가지고 여러 가지 언어의 웹 페이지 생성
- 데이터베이스로의 입력, 수정, 삭제 ,조회
- XML 문서의 처리
- 문자열을 처리하는 함수 호출
JSTL 라이브러리는 위 기능을 크게 core, format, xml, sql, function 5 가지 커스텀 태그로 나누어 제공해 줍니다.
http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/
JSTL 에 대해 궁금증이 생길 때 위 사이트에서 도움을 얻을 수 있으므로 위 주소를 기업해 둡시다.
5가지 커스텀 태그는 이름이 말해주듯, 기본 기능, 형식화, sql 처리, xml 처리, 함수 처리를 기능별로 나누어 제공해 줍니다.
커스텀 태그 | 설명 |
기본 기능(core) | 일반 프로그램이 언어에서 제공하는 것과 유사한 변수 선언, 실행 흐름의 제어 기능을 제공하고, 다른 JSP 페이지로 제어를 이동하는 기능도 제공한다. |
형식화(format) | 숫자, 날짜, 시간을 포매팅하는 기능과 국제화, 다국어 지원 기능을 제공한다. |
데이터베이스(sql) | 데이터베이스의 데이터를 입력/수정/삭제/조회하는 기능을 제공한다. |
xml 처리(xml) | XML 문서를 처리할 때 필요한 기능을 제공한다. |
함수 처리(functions) | 문자열을 처리하는 함수를 제공한다. |
JSTL 역시 커스텀 태그이기 때문에 이를 사용하기 위해서는 추가적으로 라이브러리가 필요합니다. 자바 웹 애플리케이션에서 는 추가적인 라이블러리가 jar 파일 형태로 제공되고 이를 WEB-INF/lib 폴더 내에 복사해 두고 사용합니다.
커스텀 태그 라이브러링니 JSTL 역시 jar 파일을 압축하여 배포합니다. JSTL 을 사용하기 위해 필요한 JAR 파일은 다음과 같습니다.
jstl.jar
standard.jar
이 두개의 파일을 구한 후에 JSTL 를 설치해야 합니다. jstl.jar, standard.jar 파일은 http://jakarta.apache.org 사이트에서 다운로드 받을 수 있습니다.
<%@ taglib uri ="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:out value="Hello World! />
<c:out>는 데이터를 출력할 때 사용하는 태그로 표현식인 <%= %> 를 대체할 수 있습니다.
다음은 JSTL 의 기능 분류에 따른 태그 라이브러리의 URI 식별자와 접두사인 prefix를 정리한 표입니다.
기능 | prefix | 기본 URI |
기본 기능 | c | http://java.sun.com/jsp/jstl/core |
형식화 | fmt | http://java.sun.com/jstl/fmt |
데이터베이스 작업 | sql | http://java.sun.com/jstl/sql |
XML 처리 | x | http://java.sun.com/jstl/xml |
함수 처리 | fn | http://java.sun.com/jsp/jstl/fn |
이중 http://java.sun.com/jsp/jstl/core 에서 제공해주는 <c:out> 태그를 사용하여 JSTL 에 제대로 설치되었다.
JSTL core 태그
이전 절에서 JSTL 을 사용하기 위해서 추가적으로 라이브러리를 설치해 놓았습니다. 이제 JSTL 에서 제공되는 다양한 태그를 사용해 보도록 합시다.
JSTL 5종류의 라이브러리들 중에서 가장 자주 사용되는 core 태그를 우선적으로 학습해 보도록 하겠습니다.
태그 | 설명 |
<c:set> | 변수에 값을 설정한다. |
<c:remove> | 변수에 설정된 값을 제거한다. |
<c:if> | 조건에 따라 처리를 달리 할 때 사용한다. |
<c:choose> | 여러 조건에 따라 처리를 달리 할 때 사용한다. |
<c:forEach> | 반복 처리를 위해서 사용한다. |
<c:forTokens> | 구분자로 분리된 각각의 토큰을 처리할 때 사용한다. |
<c:Import> | 외부의 자원을 url 을 지정하여 가져다 사용한다. |
<c:redirect> | 지정한 경로로 이동한다. |
<c:url> | url을 재 작성한다. |
<c:out> | 데이터를 출력할 때 사용하는 태그로 표현식인 <%= %>를 대체할 수 있다. |
<c:catch> | 예외 처리에 사용한다. |
댓글 ( 4)
댓글 남기기