적외선 2014. 11. 14. 17:38

JSTL, JSP Standard Tag Library



개요

 JSP는 XML처럼 사용자가 태그를 정의해 사용하는 것이 가능하며 이런 태그를 사용자 정의 태그라 하는데 이들 중 자주 사용하는 것을 표준으로 만들어 놓은것이 JSTL이다. JSTL은 일반적인 웹 애플리케이션 기능인 반복과 조건, 데이터관리, 포맷, XML조작, 데이터베이스 엑세스를 구현하는 라이브러리를 제공하고 있다.


<접두어:태그명 속성1:값1, 속성:값2, ...>

Body 없는 경우 :

<c:if test="testCondition" var="varName"  [scope="{page|request|session|application}"]/>


Body 있는 경우 :

<c:if test="testCondition"  [var="varName"]  

[scope="{page|request|session|application}"]>

      blah blah blah

</c:if>


작성 시 주의사항은 액션태그가 그렇듯 XML기반에서 작성되었기 때문에 모든 태그는 시작태그과 종료태그를 쌍으로 작성해야한다.


 JSTL은 태생이 커스텀태그이기 때문에 jsp와 밀접하게 관계가 있다. application, session, request, response,  pageContext 등의 내장객체에 쉽게 접근하며, 그 외에도 파라미터, 헤더, 쿠키 등을 복잡한 코드를 사용하지 않고, 쉽게 직관적으로 사용할 수 있다. 또한 기본적인 연산이나 객체의 비교 등

을  .equals() 메소드 등을 이용하는 대신  == 와 같이 쉽게 구현했으며, 조건, 반복, 이동에 대한 태그를 지원하기 때문에 태그만으로도 반복 기능을 구현할 수 있다.



태그의 종류

- 코어(Core)

⋅기능  : 변수지원, 흐름제어, URL처리

⋅접두어(Prefix)  :  c

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


- XML

⋅기능  :  XML 코어, 흐름 제어,  XML 변환

⋅접두어(Prefix)  :  x


- 국제화

⋅기능  : 지역, 메시지 형식, 숫자 및 날짜형식

⋅접두어(Prefix)  :  fmt


- 데이터베이스

⋅기능  :  SQL

⋅접두어(Prefix)  :  sql


- 함수(Functions)

⋅기능  : 컬렉션 처리,  String 처리

⋅접두어(Prefix)  :  fn



환경설정

1) 라이브러리

 기존의 컨텍스트에서 JSTL을 사용하려면 웹 어플리케이이션의 WEB-INF/lib 디렉토리에 필요한 라이브러리를 복사한다.

JSTL의 주된 라이브러리 파일은 jstl.jar, standard.jar이고, XML에서 지원되는 기능을 사용하려면 jaxen-full.jar, saxpath.jar, jaxp-api.jar 파일 등이 필요하다.


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

http://blog.naver.com/PostView.nhn?blogId=topgunmagic&logNo=120174261098


혹은 톰캣설치폴더\webapps\examples\WEB-INF\lib 에서 가져온다.



1.2 버전은 톰캣 6.0부터, 1.1버전은 톰캣 5.5부터 사용가능


2) JSP에 디렉티브 taglib 추가

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>

<%@ taglib prefix="fmt  uri="http://java.sun.com/jsp/jstl/fmt"%>

<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>



출처 - http://noritersand.tistory.com/122