JSP

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> 예외 처리에 사용한다.

 

 

 

 

 

 

 

about author

PHRASE

Level 60  머나먼나라

국민의 앞장을 서서 국민을 위해 힘껏 노력한다. 이것이 위정자의 마음가짐이다. -논어

댓글 ( 4)

댓글 남기기

작성

JSP 목록    more