5,074,679 th visitor since 2017.2.1 ( Today : 916 )
Programming
No. 308
Name. coolx
Subject. [강좌]커스텀태그 - 2
Main Cate. JSP/Servlet
Sub Cate.
Date. 2006-07-20 09:48
Hit. 3323 (220.76.115.27)
File.
[강좌]커스텀태그 - 2

정보는 공유 되어야 하기에
제가 운영하는 www.ihelpers.co.kr에 있는 강좌를 이곳에 올립니다.

이번강좌에서는 parameter 를 갖는 태그에 대해서 알아보도록 하겠다.



지난강좌에서 알 수 있듯이 단순한 태그조차도 많은 매서드를 써야 한다는 것을 알수 있었다.

사실 지난시간까지는 Tag 인터페이스를 사용했습니다.

인터페이스는 그 특성상 모든 메서드를 일일이 사용자가 구현을 해야 함을 의미한다.

이번 강좌에서는 이러한 Tag 인터페이스를 미리 구현한 TagSupport클래스를 이용하여 진행하도록 하겠습니다.



그럼. TagSupport클래스부터 살펴보도록 하죠..



Javax.servlet.jsp.tagext.TagSupport
#id:java.lang.String
#pageContext:javax.servlet.jsp.PageContext
-paret:javax.servlet.jsp.tagext.Tag

-values:java.lang.Objct[]

+getId():java.lang.String

+setId(:java.lang.String):void

+release():void

+getValue(:java.lang.String):java.lang.Object

+setValue(:java.lang.String,:java.lang.Object):void

+getParent():javax.servlet.jsp.tagext.Tag

+setParent(:javax.servlet.jsp.tagext.Tag):void

+TagSupport()

+findAncestorWithClass(:javax.servlet.jsp.tagext.Tag,..)

+getValues():java.util.Enumeration

+removeValue(:java.lang.String):void

+doEndTag():int

+doStarttag():int

+setPageContent(:javax.servlet.jsp.PageContext):void




Interface

Javax.servlet.jsp.tagext







TagSupport 클래스 중에서 몇가지 메서드를 살펴보도록 하겠습니다.

- findAncestorsWithClass() : 부모태그를 찾는다.

- getID / setID() : ID라는 파라미터를 셋팅하거나 값을 가져오는데 사용되는 메서드



I. Hello Tag 의 작성



우리는 TagSupport클래스를 상속받아 Tag를 작성하려 합니다.

다음의 도표로 기본 구조를 살펴보도록 하겠습니다.



tag.HelloTag

-name:String = “”

+HelloTag()

+setName(name:String):void

+doEndTag():int




javax.servlet.jsp.tagext.TagSupport





1. 태그 핸들러 클래스의 작성


package tag;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

public class HelloTag extends TagSupport{

private String name = “”;

// 생성자

public HelloTag(){ super();}

// setter 메서드

public void setName(String name){

this.name = name;

}

public int doEndTag() throws javax.servlet.jsp.JspTagException{

try{

&n bsp; pageContext.getOut().write(“Hello “ + name + “!”);

}catch(java.io.IOException e){

&nb sp; throw new JspTagException(“IO Error : “ + e.getMessage());

}

return EVAL_PAGE;

}

}



이전강좌에서 사용했던 메서드들이 많이 사라진 것을 알수 있는데 앞서 언급했듯이..

TagSupport클래스는 Tag 인터페이스를 구현한 클래스이므로 모든 메서드를 구현할 필요가 없습니다.

2. 태그설명자 등록

에 등록


hello
tag.HelloTag
empty
A Hello Tag


name
false
false





3. Presentation 작성(JSP 파일 작성)












--------------------------------------------------------------------------------



--------------------------------------------------------------------------------






4. 결과 확인

http://localhost/tag_tu/hello.jsp



다음강좌에서는 Body를 갖는 태그에 대해서 알아보도록 하겠습니다.


[바로가기 링크] : http://coolx.net/cboard/develop/308



Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog