<?xml version="1.0" encoding="euc-kr"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_1.dtd" > <taglib> <!-- 태그라이브러리릐 시작을 알리는 태그 --> <tlibversion>1.0</tlibversion> <!-- 라이브러리버전 --> <jspversion>1.2</jspversion> <!-- jsp스팩 버전 --> <shortname>helloTag</shortname> <!-- 태그 라이브러리의 축약된 이름. 생략가능 --> <info>hello CustomTag</info> <!-- 태그 라이브러리에 대한 간략한 설명을 기술한다. 생략 가능 --> <tag> <name>hello</name> <!-- 태그의 이름 jsp페이지에서 선언할때 prefix속성을 tag라고 했을경우<tag:hello/>형식으로 태그를 사용한다. --> <tagclass>hello.HelloTag</tagclass> <!-- 태그 핸들러 클래스 기술 --> <teiclass>hello.HelloTEI</teiclass> <!-- 보조 클래스(자주사용X) --> <bodycontent>JSP</bodycontent> <!-- 바디 부분의 컨텐츠 타입을 기술한다. --> <attribute> <!-- 태그에 속성 기능을 부여할때 사용 --> <name>say</name> <!-- 태그 속성이름 <tag:hello say="안녕"/>과 같은 식으로 사용가능--> <required>false</required> <!-- 필수입력 여부 (true / false) --> <rtexprvalue>true</rtexprvalue> <!-- 자바 표현식 사용 여부 true값을 갖을때는 속성값이 <%=test%>와 같은 형식이 올수 있다.--> </attribute> </tag> </taglib>
5. 태그 핸들러란?
커스텀 태그의 실제 기능을 정의한 클래스..(없으면 커스텀 태그가 의미가 없겠죠? 기능이 없는 태그라? 헐)
그럼 어떻게 태그 핸들러 클래스를 만드는지 알아보도록 합시다.
태그 핸들러 클래스를 만들기 위해서는 태그 TagSuppory또는 BodyTagSupport클래스를 상속받아야 한다.
이 2개 클래스는 커스텀 태그에 관련된 중요 패키지인 javax.servlet.jsp.tagext에서 제공하는 인터페이스로 만들어졌다.
1) javax.servlet.jsp.tagext패키지의 인터페이스들.
- BodyTag : Body가 있는 태그를 구현할 때 사용
- IterationTag : 반복적인 작업을 구현할 때 사용
- SimpleTag : Tag와 IterationTag의 내용을 동시에 구현할 수 있다.
- Tag : 일반적인 (Body가 없는) 태그를 구현할 때 사용
Tag, IterationTag 인터페이스를 구현한 것이 2)TagSupport
BodyTag인터페이스를 구현한 것이 BodyTagSupport이다.
jsp2.0부터 SimpleTag를 구현한 SimpleTagSupport가 존재했다!!
2) TagSupport클래스가 제공하는 주요 메소드
- doStartTag() : 시작 태그를 만날 때 실행
- doEndTag() : 끝 태그를 만날 때 실행
- setPageContext(PageContext arg0) : 전달 받은 pageContext객체를 저장할 때 쓰임
- getPageContext() : 저장해 놓은 pageContext객체를 얻을 때 쓰인다.
3) BodyTagSupport 클래스가 제공하는 주요 메소드
- doAfterBody() : doStartTag()에서 EVAL_BODY_INCLUDE가 리턴될 경우 실행된다.
- doStartTag() : 시작 태그를 만날 때 실행된다.
- doEndTag() : 끝 태그를 만날때 실행된다.
- doInitBody() : Body내용을 확인하기 전에 실행된다.
4) SimpleTagSuppory클래스가 제공하는 주요 메소드
- doTag() : 시작 태그 또는 끝 태그를 만날 때 실행된다.
- getJspBody() : Body를 처리하기 위한 JspFragment객체를 얻는다.
- getJspContext() : 저장되어 있는 JspContext객체를 얻는다.
체리필터의 인생이야기 커스텀태그 사용하기: http://www.4te.co.kr/566
2016.04.20 추가 참고 사이트 : http://toydroid.tistory.com/19
'tag library' 카테고리의 다른 글
EL로 자바 상수 사용방법 (0) | 2016.03.28 |
---|---|
tag library function 사용 (0) | 2014.08.08 |