# 사용자 정의 태그(Custom tag = User Defined Tag)
-JSP에서 사용될 태그를 사용자가 직접 정의해서 사용
-JSTL은 사용자 정의 태그의 일부
-Tag인터페이스를 기반으로 하는JSP1.2 버전의 커스텀 태그의 SimpleTag인터페이스를 기반으로 하는JSP2.0버젼의 커스텀태그로 나눔.
-커스텀태그를 사용하면 태그의 재사용성이 증가하고, JSP개발이 간편해지며, 코드의 가독성을 향상 시켜주는 이익이 있다.
-계층도
(i)JspTag
|
(i)Tag (i)SimpleTag-(c)SimpleTagSupport
(i)IterationTag-(c)TagSupport
(i)BodyTag-(c)BodyTagSupport
-커스텀 태그의 구성
1) 태그클래스 : 태그가 할일(태그를 만나면 수행해야할 작업을 정의)
2) TLD(Tag Library Descriptor) : XML로 만들어진 태그라이브러리(태그들의 모임)에 대한 서술자
3) web.xml에 TLD에 대한 정의
- javax.servlet.jsp.tagtext.Tag인터페이스의 메소드
1) void setPageCountext(PageContext pc)
커스텀 태그가 포함된 JSP페이지의 pageContext를 설정
2) int doStartTag() : 시작 태그를 만나면 해야할 작업을 정의
3) int doEndTag() : 끝태그를 만나면 해야할 작업을 정의
4) void release() : 태그클래스의 객체를 메모리에서 해제
5) void setParent(Tag t) : 부모태그를 설정
6) Tag getParent() : 부모태그를 획득
- javax.servlet.jsp.tagext.IterationTag 인터페이스의 메소드
1)int doAfterBody() : 태그의 몸체내용을 처리한 후에 호출
예) <pre:tagName> ==> doStartTag
Body ...
----> doAfterBody
</pre:tagName> ==> doEndTag
- javax.servlet.jsp.tagBodyContent클래스의 메소드
1) String getString() : BodyContent의 내용을 문자열로 반환
2) JspWriter getEnclosingWirter() : BodyContent의 내용을 출력스트림으로 반환
3) void writeOut(Writer out) : BodyContent의 내용을 out 출력스트림으로 출력
4) Reader getReader() : BodyContent의 내용을 읽어올 수 있는 Reader 반환
5) void clearBody() : 몸체 내용을 삭제
*Tag 파일
- JSP형식으로 태그핸들러 클래스
- 태그파일에서 사용할 수 있는 디렉티브
1)tag : 태그파일의 설정 정보
2)taglib : 태그파일내에서 사용할 태그라이브러리 설정 정보
3)include : 태그파일에 다른 파일을 추가할 때 사용
4)attribute : 태그파일이 입력받을 속성 설정
5)variable: EL변수로 사용될 변수의 정보
-tag 디렉티브의 속성
1)display-name : 표시 이름, tag를 표시할 수 있는 서버에서 표시하는 이름
2)body-content : 이 태그가 바디를 포함할지
3)dynamic-attributes : 동적 속성을 사용할 지
4)description : 태그에 대한 설명
5)import : 이 태그파일에서 사용할 클래스
6)pageEncoding : 이 태그파일의 인코딩 방식
7)isELIgnored : EL 무시 할지
-tag 파일에서 사용가능한 내장 객체
1) jspContext : jsp파일에 대한 정보, getAttribute, setAttribute
2) request, response, session, application, out
--attribute 디렉티브의 속성
1)description : 설명
2)name : 속성명
3)required : 속성이 필수속성인지
4)rtexprvalue : 표현식(EL)사용가능 여부
5)type : 속성값의 타입
6)fragment : 속성값 전달시 사용
-variable 디렉티브의 속성
1)description : 설정
2)name-given : EL변수의 이름을 속성의 값으로 사용
3)name-from-attribute : 속성의 값을 EL변수의 이름으로 사용
4)alias : name-from-attribute가 있을때만 사용. Tag파일에서 커스텀 태그의 몸체에서 사용될 변수와 값을 가지는 EL변수의 이름.
5)variable-class : 변수의 타입
6)scope : 변수의 유효범위
-AT_BEGIN : 시작 태그부터 사용가능
-NESTED : 태그내에서 사용가능
-AT_END : 끝태그 후 부터 사용가능
* 2) 3)은 둘중 하나만 사용해야함. 중복 사용 불가
'JSP' 카테고리의 다른 글
Double submit 방지 - F5키 또는 새로고침 시 이전 페이지의 로직 수행(중복 저장 등)을 막아 보자! (5) | 2011.04.20 |
---|---|
필터와 리스너 (0) | 2010.04.09 |