I.      TEI 클래스란.(도우미 클래스)

 

새로운 원소들을 동적으로 추가하고 이러한 원소들이 스크립팅 변수로써 참조되도록 하기위해서는  같은 페이지내에서 컨테이너에게 태그가 추가하고자 원소들을 지정하고 그러한 원소들의

생명주기를 알려주어야 합니다.

이러한 정보들은 TagExtraInfo 태그에 모아지는데 아래 도표와 같습니다.

 

javax.servlet.jsp.tagext.TagExtraInfo

#taginfo:javax.servlet.jsp.tagext.TagInfo

+isValid(:javax.servlet.jsp.tagext.TagData):Boolean

+TagExtraInfo()

+getVariableInfo(:javax.servlet.jsp.tagext.TagData):javax.servlet.jsp.tagext.VariableInfo[]

+getTagInfo():javax.servlet.jsp.tagext.TagInfo

+setTagInfo(:javax.servlet.jsp.tagext.TagInfo):void

 

이러한 정보들이 태그라이브러리 설명자의 일부분이 되지 않는 이유는 로직의 복잡성을 은닉화 하기 위함 이다. 페이지가 parsing 될때 TEI와 연결된 TAG를 만나면 컨테이너는 아래와 같은 방법으로 TEI 메서드를 이용한다.

 

 

 

컨테이너

 

SetTagInfo(javax.servlet.jsp.tagext.Taginfo):void

 


IsValid(javax.servlet.jsp.tagext.TagData):Boolean

 


GetVariableInfo(javax.servlet.jsp.tagext.TagData):

               javax.servlet.tagext.VariableInfo[]

 

 

 

TagExtrainfo

 

 


 

1.       setTagInfo() 메서드를 호출한다.

2.       isValid() 메서드를 호출한다. 이 메서드는 태그 사용이 유효하다면 true 를 리턴한다.

3.       getVariableInfo() 메서드 호출.VariableInfo 형 배열을 리턴

 

컨테너는 setTagInfo()메서드로 TagInfo 객체가 설정하며 TagInfo 객체는 다음과 같다.

 

javax.servlet.jsp.tagext.TagInfo

+BODY CONTENT JSP : java.lang.String

+BODY CONTENT EMPTY:java.lang.String

+BODY CONTENT TAG DEPENDENCY:java.lang.String

-attributeInfo:javax.servlet.jsp.tagext.TagAttributeInfo[]

-bodyContent:java.lang.String

-infoString:java.lang.String

-tagClassName:java.lang.String

-tagExtraInfo:javax.servlet.jsp.tagext.TagExtraInfo

-tagLibrary:javax.servlet.jsp.tagext.TagLibraryInfo

-tagName:java.lang.String

 

+isValid(:javax.servlet.jsp.tagext.TagData):Boolean

+TagInfo(:java.lang.String,:java.lang.String.:java.lang.String,:java.lang.String,…

+getBodyContent():java.lang.String

+getTagLibrary():javax.servlet.jsp.tagext.TagLibraryInfo

+getTagClassName():java.lang.String

+getAttributes():javax.servlet.jsp.tagext.TagAttributeInfo[]

+getVariableInfo(:javax.servlet.jsp.tagext.TagData):javax.servlet.jsp.tagext.VariableInfo[]

+getInfoString():java.lang.String

+getTagExtraInfo():javax.servlet.jsp.tagext.TagExtraInfo

+getTagName():java.lang.String

 

getBodyContent() BODY_CONTENT_JSP,BODY_CONTENT_EMPTY,BODY_CONTENT_TAG_DEPENDENT 를 리턴한다.

 

gettagClassName()를 사용하면 Tag Class 의 이름을 알수 있으며 getTagName()을 통해 Tag의 이름을 알 수 있다.

 

javax.servlet.jsp.tagext.TagData

-attributes:java.util.Map

+REQUEST TIME VALUE:java.lang.Object

+getId():java.lang.Object

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

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

+TagData(:java.lang.Object[][])

+TagData(:java.util.Hashtable)

+getAttributeString(:java.lang.String):java.lang.String

+getAttributes():java.util.Enumeration

 

javax.servlet.jsp.tagext.VariableInfo

+NESTED:int

+AT_BEGIN:int

+AT_END:int

-className:java.lang.String

-declare:Boolean

-scope:int

-varName:java.lang.String

+VariableInfo(:java.lang.String,:java.lang.String,:boolean,:int)

+getDeclare():boolean

+getScope():int

+getVarName():java.lang.String

+getClassName():java.lang.String

 

NESTED : 태그의 시작부터 태그의 끝까지 유효

AT_BEGIN : 태그의 시작부터 JSP페이지의 끝까지 유효

AT_END : 태그의 끝부터 JSP 페이지의 끝까지 유효