본문 바로가기
WEB/JSP Servlet

커스텀 태그 : 기초, 태그 파일

by 노랑파랑 2016. 11. 5.
반응형





커스텀 태그

* 스크립트 요소가 많아져 코드가 복잡해지는 것을 막기 위해 커스텀 태그를 사용한다.

* 사용자가 원하는 목적에 맞게 새로운 태그를 만들어 사용할 수 있는 기능.




커스텀 태그의 장점

* 재사용

▷ 한 번 작성한 커스텀 태그는 어떤 JSP 컨테이너에서도 사용할 수 있다.

* 쉽고 단순한 코드 작성

▷ 자바 코드에 익숙하지 않은 개발자들도 커스텀 태그를 사용하면 쉽게 JSP 페이지를 작성할 수 있다. 

* 코드의 높은 가독성

▷ 커스텀 캐그는 뚜렷한 목적을 갖고, 사용시에는 스크립트 태그를 줄일 수 있기 때문에 코드의 가독성이 향상된다.

* 개발자와 JSP 코드를 봐야하는 UI 개발자가 코드를 이해하는데 도움이 된다.




커스텀 태그 종류

* 구현하는 방법 3가지

▷ JSP 1.2 스타일로 구현. 자바 기반 커스텀 태그

▷ JSP 2.0 이상의 SimpleTag를 사용해 구현. 자바 기반 커스텀 태그

▷ JSP 2.0 이상의 태그 파일을 사용해 구현. JSP와 유사한 방식으로 커스텀 태그를 구현.




태그 파일을 이용한 커스텀 태그 구현

* 태그 파일이 나타나기 전까지는 자바 코드를 클래스 파일로 만들고, TLD 파일을 작성하고 web.xml 파일에 TLD 관련 정보를 기술해야 했다.

* 태그 파일 : JSP 문법을 사용해서 커스텀 태그로 동작할 수 있도록 만들어진 소스 코드


1) 기본

* JSP와 동일한 문법을 사용하며, 커스텀 태그 클래스로 변환한다.

* JSP의 몇가지 디렉티브와 태그 파일을 위한 디렉티브를 사용할 수 있다.

* 태그 파일에서 사용할 수 있는 디렉티브

디렉티브 

설명 

tag 

JSP 페이지의 page 디렉티브와 동일하다. 태그 파일의 정보를 명시한다. 

taglib 

태그 파일에서 사용할 태그 라이브러리를 명시할 때 사용한다. 

include 

태그 파일에 특정한 파일을 포함시킬 때 사용한다. 단, 태그 파일에 포함되는 파일은 태그 파일에 알맞은 문법으로 작성해야 한다. 

attribute 

태그 파일을 커스텀 태그로 사용할 때 압력받을 속성을 명시한다. 

variable 

EL 변수로 사용할 변수에 대한 정보를 지정한다. 


* tag 디렉티브 속성

속성 

설명 

display-name 

태그 파일을 도구에서 보여줄 때 사용될 이름을 지정한다. 

기본값은 확장자 ".tag"를 제외한 태그 파일의 나머지 이름이다. (선택) 

body-content 

몸체 내용의 종류를 입력한다. empty, tagdependent, scriptless(기본값)의 세 가지 값 중 하나를 사용할 수 있다. (선택) 

dynamic-attribute

동적 속성을 사용할 때, 속성의 <이름, 값>을 저장하는 Map 객체를 page 범위의 속성에 저장할 때 사용할 이름을 지정한다. 

EL에서 변수 이름으로 사용할 수 있다.(선택) 

description

태그에 대한 설명을 입력한다. (선택) 

import 

page 디렉티브의 import 속성과 동일하다 (선택) 

pageEncoding 

page 디렉티브의 pageEncoding 속성과 동일하다. (선택) 

isELIgnored 

page 디렉티브의 isELIgnored 속성과 동일하다. (선택) 

deferredSyntaxAllowedAsLiteral 

page 디렉티브의 deferredSyntaxAllowedAsLiteral 속성과 동일하다. (선택)

trimDirectiveWhitespace 

page 디렉티브의 trimDirectiveWhitespace 속성과 동일하다. (선택)



2) 태그 파일 위치 | 태그 파일 참조 방법

* 태그 파일 위치 : WEB-INF/tags 폴더에 위치한다.

▷ 위 폴더에 위치한 .tag 확장자나 .tagx 확장자를 갖는 파일만 태그 파일로 인식한다.

* 태그 파일 참조 : WEB-INF/tags/util 폴더에 있는 Exam.tag 파일을 참조하려면

<%@ taglib prefix="tf" tagdir="/WEB-INF/tags/util" %>

...

< tf : Exam ...> ... </tf : Exam>



3) 태그 파일에서 사용가능한 기본 객체

* jspContext : pageContext가 제공하는 setAttribute(), getAttribute() 메소드를 그대로 제공하며, 각 속성과 관련된 작업을 처리한다.

* request : JSP의 객체와 동일

* response : JSP의 객체와 동일

* session : JSP의 객체와 동일

* application : JSP의 객체와 동일

* out  : JSP의 객체와 동일


반응형

'WEB > JSP Servlet' 카테고리의 다른 글

서블릿 : 기본  (0) 2016.11.21
JDBC : 기초  (0) 2016.11.21
JDBC : 기초  (0) 2016.11.05
표현언어(EL) 비활성화 방법  (0) 2016.11.05
표현언어 : 람다식, 스트림 API  (0) 2016.11.04