본문 바로가기

Web Programming

JSP 1.2 커스텀 태그

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
음.. 일단 커스텀 태그를 한번 만들어 볼까요? JSP 1.2 커스텀 태그에 대해서 한번 알아 보겠습니다. 일단 커스텀 태그를 사용하기 위해서는 3가지의 구성 요소가 필요한대요.. 하나는 태그 핸들러 클래스 (Tag Handler Class) 이구요.. 이 태그 핸들러 클래스는 javax.servlet.jsp.tagext 패키지의 TagSupport 클래스를 상속받아서 사용하거나 Tag 인터페이스 구현하는 방법으로 사용한다고 합니다. 전자의 방법을 많이 선호하는 편이구요.

그리고 태그 라이브러리 기술자 (Tag Library Descriptor) 가 필요하다고 합니다. 요놈은 태그의 이름을 정하고 태그 핸들러와의 관계를 기술해주는 역할을 합니다.

그리고 마지막으로는.. 이걸 사용할라면 JSP 페이지를 만들어야 겠죠..? 이 세가지 구성요소를 만들어서 커스텀 태그라는 것을 한번 사용해 보겠습니다.



첫번째로 태그 핸들러 클래스를 만듭니다.

사용자 삽입 이미지

doStartTag() 라는 메소드를 오버라이드 합니다. 아마도 doStartTag() 라는 것은 해당 커스텀 태그가 시작될때 호출이 되는 메소드 인것 같습니다. doStartTag 라는 메소드를 사용자의 구미에 맞게 구현해주면 될거 같습니다. SKIP_BODY를 리턴해 주는 경우는 본문의 태그를 무시한다는 의미인데 아마도 input 태그 처럼 바디가 없는 경우 인듯 합니다.



그럼 다음으로 태그 라이브러리 기술자를 보시겠습니다.

사용자 삽입 이미지
머 아직까지 XML은 외계어 같습니다. 일단 <tag> 라는 태그 안을 한번 보십시다. 그 안에 세가지 태그가 숨어 있드랬죠? name, tag-class, body-content 이렇게 세놈입니다. name은 아마도 태그 명령어 이름 같습니다. 그리고 tag-class 는 이전에 만들었던 태그 핸들러 클래스 인 듯 합니다. 그리고 마지막으로 body-content 라는 태그에는 3가지가 있다고 하네요. empty 와 JSP, tag-dependent 이러케 세가지.. empty의 경우에는 body가 없는 태그, JSP 의 경우에는 jsp 태그를 사용, tag-dependent 같은 경우에는 또 다른 커스텀 태그를 사용할수 있도록 하는 경우 인듯 합니다.


그리고 마지막으로 JSP 파일을 보시겠습니다.
사용자 삽입 이미지

호호 바디 태그 안에 들어가는 부분만 한번 중점적으로 보시길 바랍니다. 아.. 우선 저부분.. <%@ taglib uri="/web-inf/MsgTag.tld" prefix="mytag" %> 요 부분이 아주 중요합니다. 커스텀 태그를 불러오는데 위치를 잡아주는 속성으로는 uri 가 있어서 요놈이 정의했던 태그 라이브러리 기술자를 가져오고 그 이름은 mytag 라고 해주도록 했습니다. 사용할때는 prefix 속성으로 정했던 이름에 콜론을 하고 tld 에 정의했었던 이름으로 사용을 합니다.

그럼 아주 간단하게 <mytag:print/> 라고 해주기만 하면... -_-.. 아래와 같은 결과 화면을 볼수 있습니다.

사용자 삽입 이미지