javax.servlet.jsp.tagext
ÀÎÅÍÆäÀ̽º Tag

±âÁ¸ÀÇ ¼­ºê ÀÎÅÍÆäÀ̽ºÀÇ À϶÷:
BodyTag , IterationTag

public interface Tag

ÅÂ±× º»Ã¼¸¦ Á¶ÀÛÇÏÁö ¾Ê´Â °£´ÜÇÑ ÅÂ±× Çڵ鷯ÀÇ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. Tag ÀÎÅÍÆäÀ̽º¿¡´Â, ÅÂ±× Çڵ鷯¿Í JSP ÆäÀÌÁö ½ÇÀå Ŭ·¡½º¿ÍÀÇ »çÀÌÀÇ ±âº»ÀûÀÎ ÇÁ·ÎÅäÄÝÀÌ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ¶Ç, ±× ¶óÀÌÇÁ »çÀÌŬ°ú °³½Ã ÅÂ±×¿Í Á¾·á ű׷ΠºÒ·Á °¡´Â ¸Þ¼Òµå¸¦ Á¤ÀÇÇÕ´Ï´Ù.

ÇÁ·ÓÆÛƼ

Tag ÀÎÅÍÆäÀ̽º´Â, ÄÚ¾î pageContext ¿Í ºÎ¸ðÀÇ ÇÁ·ÓÆÛƼ¿¡ ´ëÇÑ ¼³Á¤ ¸Þ¼Òµå ¹× Ãëµæ ¸Þ¼Òµå¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù.

JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®´Â, doStartTag() ¶Ç´Â doEndTag()¸¦ È£ÃâÇϱâ Àü¿¡, setPageContext ¿Í setParent ¸¦ ÀÌ ¼ø¼­·Î È£ÃâÇÕ´Ï´Ù.

¸Þ¼Òµå

doStartTag ¹× doEndTag ¶ó°í ÇÏ´Â 2 °³ÀÇ ¾×¼ÇÀÌ ÁغñµÇ¾î ÀÖ½À´Ï´Ù. ´ëÀÀÇÏ´Â ÇÁ·ÓÆÛƼ°¡ ¸ðµÎ ÃʱâÈ­µÇ¸é(ÀÚ), ÅÂ±× Çڵ鷯»ó¿¡¼­ doStartTag ¹× doEndTag ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÅÂ±× Çڵ鷯´Â, doStartTag ¸Þ¼Òµå°¡ ºÒ·Á °¡°í ³ª¼­ doEndTag ¸Þ¼Òµå°¡ ºÒ·Á °¥ ¶§±îÁö, º¸Á¸ÀÌ ÇÊ¿äÇÑ ³»ºÎ »óŸ¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. doEndTag °¡ ºÒ·Á °¡¸é(ÀÚ), ÀÌ ÅÂ±× Çڵ鷯´Â ´ÙÀ½ÀÇ È£Ãâ¿¡ ÀÌ¿ëµË´Ï´Ù. ÀÌ ¶§, ÅÂ±× Çڵ鷯ÀÇ ÇÁ·ÓÆÛƼ´Â º¸°ü À¯ÁöµË´Ï´Ù.

¶óÀÌÇÁ »çÀÌŬ

¶óÀÌÇÁ »çÀÌŬÀÇ ÀÚ¼¼ÇÑ °ÍÀº, ´ÙÀ½ÀÇ ÃµÀ̵µ¿¡ ¼³¸íµÇ°í ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ÄÚ¸àÆ®¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

ÅÂ±× Çڵ鷯»ó¿¡¼­ ¸ðµç È£ÃâÀÌ ¿Ï·áÇϸé(ÀÚ), ÇØ¹æ ¸Þ¼Òµå°¡ ºÒ·Á °©´Ï´Ù. ÇØ¹æ ¸Þ¼Òµå°¡ ºÒ·Á °¡¸é(ÀÚ), ºÎ¸ð ¹× pageContext ¸¦ Æ÷ÇÔÇÑ ¸ðµç ÇÁ·ÓÆÛƼ°¡ ¹ÌÁöÁ¤Ä¡¿¡ ¸®¼ÂÆ® µË´Ï´Ù. ÆäÀÌÁö ÄÄÆÄÀÏ·¯´Â, release()¸¦ ÅÂ±× Çڵ鷯»ó¿¡¼­ È£ÃâÇÏ°í ³ª¼­, ÅÂ±× Çڵ鷯¸¦ GC ¿¡ ÇØ¹æÇÕ´Ï´Ù.

ÇÏ´ÃÀÇ ¾×¼Ç°ú ÇÏ´ÃÀÌ ¾Æ´Ñ ¾×¼Ç

TagLibraryDescriptor ÆÄÀÏÀÇ <body-content> ¿£Æ®¸®°¡ "empty" ÀÎ °æ¿ì, ±× ¾×¼ÇÀº Ç×»ó ÇÏ´ÃÀÎ °ÍÀ» ³ªÅ¸³»°í ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, doStartTag() ¸Þ¼Òµå´Â SKIP_BODY ¸¦ µ¹·ÁÁÙ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿£Æ®¸®°¡ "empty" °¡ ¾Æ´Ñ °æ¿ì, doStartTag() ¸Þ¼Òµå´Â SKIP_BODY ¶Ç´Â EVAL_BODY_INCLUDE ¸¦ µ¹·ÁÁÝ´Ï´Ù.

SKIP_BODY °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì´Â, ÅÂ±× º»Ã¼ (Á¸ÀçÇÏ´Â °æ¿ì)´Â Æò°¡µÇÁö ¾Ê½À´Ï´Ù.

EVAL_BODY_INCLUDE °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì´Â, ÅÂ±× º»Ã¼°¡ Æò°¡µÇ¾î ÇöÀçÀÇ Ãâ·Â¿¡°Ô °Ç³×Áý´Ï´Ù.


ÇʵåÀÇ °³¿ä
static int EVAL_BODY_INCLUDE
          ÅÂ±× º»Ã¼¸¦ Æò°¡ÇØ, ±âÁ¸ÀÇ Ãâ·Â ½Ã³Á¹°¿¡ Ãâ·ÂÇÕ´Ï´Ù.
static int EVAL_PAGE
          ÆäÀÌÁöÀÇ Æò°¡¸¦ ¼ÓÇàÇÕ´Ï´Ù.
static int SKIP_BODY
          ÅÂ±× º»Ã¼ÀÇ Æò°¡¸¦ ½ºÅµ ÇÕ´Ï´Ù.
static int SKIP_PAGE
          ÆäÀÌÁöÀÇ ³²Àº ºÎºÐÀ» ½ºÅµ ÇÕ´Ï´Ù.
 
¸Þ¼ÒµåÀÇ °³¿ä
 int doEndTag ()
          ÀÌ ÀνºÅϽºÀÇ Á¾·á ű׸¦ ó¸®ÇÕ´Ï´Ù.
 int doStartTag ()
          ÀÌ ÀνºÅϽºÀÇ °³½Ã ű׸¦ ó¸®ÇÕ´Ï´Ù.
 Tag getParent ()
          ÀÌ ÅÂ±× Çڵ鷯ÀÇ ºÎ¸ð (¹Ù·Î À§¸¦ µÑ·¯½Î´Â ÅÂ±× Çڵ鷯)¸¦ ÃëµæÇÕ´Ï´Ù.
 void release ()
          »óŸ¦ ÇØ¹æÇϱâ À§Çؼ­ Tag Çڵ鷯»ó¿¡¼­ ºÒ·Á °©´Ï´Ù.
 void setPageContext (PageContext  pc)
          ÇöÀçÀÇ ÆäÀÌÁö ¹®¸ÆÀ» ¼³Á¤ÇÕ´Ï´Ù.
 void setParent (Tag  t)
          ÀÌ ÅÂ±× Çڵ鷯ÀÇ ºÎ¸ð (¹Ù·Î À§¸¦ µÑ·¯½Î´Â ÅÂ±× Çڵ鷯)¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 

ÇʵåÀÇ »ó¼¼

SKIP_BODY

public static final int SKIP_BODY
ÅÂ±× º»Ã¼ÀÇ Æò°¡¸¦ ½ºÅµ ÇÕ´Ï´Ù. doStartTag ¹× doAfterBody ÀÇ À¯È¿ÇÑ ¹Ýȯ°ªÀÔ´Ï´Ù.

EVAL_BODY_INCLUDE

public static final int EVAL_BODY_INCLUDE
ÅÂ±× º»Ã¼¸¦ Æò°¡ÇØ, ±âÁ¸ÀÇ Ãâ·Â ½Ã³Á¹°¿¡ Ãâ·ÂÇÕ´Ï´Ù. doStartTag ÀÇ À¯È¿ÇÑ ¹Ýȯ°ªÀÔ´Ï´Ù.

SKIP_PAGE

public static final int SKIP_PAGE
ÆäÀÌÁöÀÇ ³²Àº ºÎºÐÀ» ½ºÅµ ÇÕ´Ï´Ù. doEndTag ÀÇ À¯È¿ÇÑ ¹Ýȯ°ªÀÔ´Ï´Ù.

EVAL_PAGE

public static final int EVAL_PAGE
ÆäÀÌÁöÀÇ Æò°¡¸¦ ¼ÓÇàÇÕ´Ï´Ù. doEndTag()ÀÇ À¯È¿ÇÑ ¹Ýȯ°ªÀÔ´Ï´Ù.
¸Þ¼ÒµåÀÇ »ó¼¼

setPageContext

public void setPageContext(PageContext  pc)
ÇöÀçÀÇ ÆäÀÌÁö ¹®¸ÆÀ» ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, doStartTag()ÀÇ Àü¿¡, JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®·ÎºÎÅÍ ºÒ·Á °©´Ï´Ù.

ÀÌ °ªÀº, doEndTag()¿¡ ÀÇÇØ ¸®¼ÂÆ® µÇÁö ¾Ê½À´Ï´Ù. doStartTag()°¡ ´ÙÀ½¿¡ ºÒ·Á °¡±â±îÁö ÀÌ °ªÀÌ º¯°æµÇ¾úÀ» °æ¿ì´Â, ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®°¡ ¸í½ÃÀûÀ¸·Î ¸®¼ÂÆ® ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
pc - ÀÌ ÅÂ±× Çڵ鷯ÀÇ ÆäÀÌÁö ¹®¸Æ

setParent

public void setParent(Tag  t)
ÀÌ ÅÂ±× Çڵ鷯ÀÇ ºÎ¸ð (¹Ù·Î À§¸¦ µÑ·¯½Î´Â ÅÂ±× Çڵ鷯)¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, doStartTag()ÀÇ Àü¿¡ JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®·ÎºÎÅÍ ºÒ·Á °©´Ï´Ù.

ÀÌ °ªÀº, doEndTag()¿¡ ÀÇÇØ ¸®¼ÂÆ® µÇÁö ¾Ê½À´Ï´Ù. ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®°¡ ¸í½ÃÀûÀ¸·Î ¸®¼ÂÆ® ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
t - Ä£ÅÂ±× ¶Ç´Â NULL

getParent

public Tag  getParent()
ÀÌ ÅÂ±× Çڵ鷯ÀÇ ºÎ¸ð (¹Ù·Î À§¸¦ µÑ·¯½Î´Â ÅÂ±× Çڵ鷯)¸¦ ÃëµæÇÕ´Ï´Ù.

getParent() ¸Þ¼Òµå´Â, ½ÇÇà½Ã¿¡ »óÀÚÀÇ ÅÂ±× Çڵ鷯 ±¸Á¶¸¦ ´õµë¾î, º¹¼öÀÇ Ä¿½ºÅÒ ¾×¼ÇÀ» °ü·ÃÁþ±â À§Çؼ­(¶§¹®¿¡) »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, TagSupport ÀÇ findAncestorWithClass()´Â, ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

ÇöÀçÀÇ »ç¾ç¿¡¼­´Â, °¨½Ã °¡´ÉÇÑ ÅÂ±× Çڵ鷯¸¦ ÁöÁ¤ÇÏ´Â Á¤½ÄÀû ¹æ¹ýÀº 1 °³ ¹Û¿¡ ÁغñµÇ¾î ÀÖÁö ¾Ê½À´Ï´Ù. Áï, ÅÂ±× Çڵ鷯 ½ÇÀå Ŭ·¡½º¸¦, tag ¿ä¼Ò¾Æ·¡¿¡ ÀÖ´Â tag-class ¿ä¼Ò¿¡ ±â¼úÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±× ¹Û¿¡ ºñ°ø½ÄÀÎ ¹æ¹ýÀ¸·Î¼­ ÅÂ±× ÇÁ·Î±×·¥ ¶óÀ̺귯¸®ÀÇ ÀÛ¼ºÀÚ°¡ tag ¿ä¼Ò¾Æ·¡¿¡ ÀÖ´Â description ¿ä¼Ò¿¡ °¨½Ã °¡´ÉÇÑ ÅÂ±× Çڵ鷯¸¦ ÁöÁ¤ÇÏ´Â ¹æ½ÄÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÅÂ±× Çڵ鷯ÀÇ ÇüÅ´Â, ±× ¾Æ·ùÇü ¶Ç´Â void ·Î ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ÀÌ ¼³Á¤Àº, JSP Ç¥ÁØ ÅÂ±× ÇÁ·Î±×·¥ ¶óÀ̺귯¸® µî, ±× ÅÂ±× ÇÁ·Î±×·¥ ¶óÀ̺귯¸®¸¦ ÀνÄÇϴ Ưº°ÇÑ ÄÁÅ×À̳ʷΠÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¹Ýȯ°ª:
ÇöÀçÀÇ ºÎ¸ð, ¶Ç´Â Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â null
°ü·Ã Ç׸ñ:
TagSupport.findAncestorWithClass().

doStartTag

public int doStartTag()
               throws JspException 
ÀÌ ÀνºÅϽºÀÇ °³½Ã ű׸¦ ó¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ ºÒ·Á °©´Ï´Ù.

doStartTag ¸Þ¼Òµå´Â, pageContext ¿Í ºÎ¸ðÀÇ ÇÁ·ÓÆÛƼ°¡ ¼³Á¤µÇ¾î ÀÖ´Â °ÍÀ» ÀüÁ¦·Î ÇÕ´Ï´Ù. ¶Ç, ¼Ó¼ºÀ¸·Î¼­ °ø°³µÈ ÇÁ·ÓÆÛƼ°¡ ¼³Á¤µÇ¾î ÀÖ´Â Àϵµ ÀüÁ¦·Î ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå°¡ ºÒ·Á °¬À» ¶§¿¡´Â, º»Ã¼´Â ¾ÆÁ÷ Æò°¡µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â, ¾×¼ÇÀÇ º»Ã¼¸¦ Æò°¡ÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì´Â Tag.EVAL_BODY_INCLUDE ¶Ç´Â BodyTag.EVAL_BODY_BUFFERED ¸¦ µ¹·ÁÁÖ¾î, Æò°¡ÇÒ Çʿ䰡 ¾ø´Â °æ¿ì´Â SKIP_BODY ¸¦ µ¹·ÁÁÝ´Ï´Ù.

Tag °¡ EVAL_BODY_INCLUDE ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â, ÅÂ±× º»Ã¼ (Á¸ÀçÇÏ´Â °æ¿ì)¸¦ Æò°¡ÇÑ °á°ú°¡ ÇöÀçÀÇ Ãâ·Â¿ë JspWriter ¿¡ Ãâ·ÂµÇ¾î doEndTag()°¡ ºÒ·Á °©´Ï´Ù.

BodyTag.EVAL_BODY_BUFFERED ´Â, ÅÂ±× Çڵ鷯°¡ BodyTag ¸¦ ½ÇÀåÇϰí ÀÖ´Â °æ¿ì¸¸ À¯È¿ÇÕ´Ï´Ù.

JSP ÄÁÅ×À̳ʴÂ, doStartTag()°¡ ºÒ·Á °£ ÈÄ¿¡, TagExtraInfo ÀÇ ÁöÁ¤¿¡ ÀÀÇØ º¯¼öÄ¡¸¦ À絿±â ÇÕ´Ï´Ù.

¹Ýȯ°ª:
º»Ã¼¸¦ ó¸®ÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì´Â EVAL_BODY_INCLUDE, ó¸®ÇÒ Çʿ䰡 ¾ø´Â °æ¿ì´Â SKIP_BODY
¿¹¿Ü:
JspException. -  
°ü·Ã Ç׸ñ:
BodyTag

doEndTag

public int doEndTag()
             throws JspException 
ÀÌ ÀνºÅϽºÀÇ Á¾·á ű׸¦ ó¸®ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, ¸ðµç Tag Çڵ鷯¿¡ ´ëÇØ¼­ JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®·ÎºÎÅÍ ºÒ·Á °©´Ï´Ù.

ÀÌ ¸Þ¼Òµå´Â, doStartTag ·ÎºÎÅÍ Á¦¾î°¡ µ¹¾Æ¿Â ÈÄ¿¡ ºÒ·Á °©´Ï´Ù. ¾×¼ÇÀÇ º»Ã¼°¡ Æò°¡µÉÁö ¾î¶³Áö´Â, doStartTag ÀÇ ¹Ýȯ°ª¿¡ ÀÀÇØ °áÁ¤µË´Ï´Ù.

ÀÌ ¸Þ¼Òµå°¡ EVAL_PAGE ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â, ÆäÀÌÁöÀÇ ³ª¸ÓÁöÀÇ ºÎºÐÀÌ °è¼ÓÇØ Æò°¡µË´Ï´Ù. ÀÌ ¸Þ¼Òµå°¡ SKIP_PAGE ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â, ÆäÀÌÁöÀÇ ³ª¸ÓÁöÀÇ ºÎºÐÀº Æò°¡µÇÁö ¾Ê°í, ¿ä±¸´Â ¿Ï·áÇÕ´Ï´Ù. ÀÌ ¿ä±¸°¡ ´Ù¸¥ ÆäÀÌÁö³ª Servlet ·ÎºÎÅÍ Àü¼Û µÇ¾úÀ» °æ¿ì, ¶Ç´Â ´Ù¸¥ ÆäÀÌÁö³ª Servlet ·ÎºÎÅÍ ÀÎŬ·çµå µÈ °ÍÀÎ °æ¿ì´Â, ÇöÀçÀÇ ÆäÀÌÁöÀÇ Æò°¡¸¸À» ÇÕ´Ï´Ù.

JSP ÄÁÅ×À̳ʴÂ, doEndTag()°¡ ºÒ·Á °£ ÈÄ¿¡, TagExtraInfo ÀÇ ÁöÁ¤¿¡ ÀÀÇØ º¯¼öÄ¡¸¦ À絿±â ÇÕ´Ï´Ù.

¹Ýȯ°ª:
JSP ÆäÀÌÁöÀÇ Æò°¡¸¦ °è¼ÓÇÏ´ÂÁö ¾î¶²Áö
¿¹¿Ü:
JspException. -  

release

public void release()
»óŸ¦ ÇØ¹æÇϱâ À§Çؼ­ Tag Çڵ鷯»ó¿¡¼­ ºÒ·Á °©´Ï´Ù. ÆäÀÌÁö ÄÄÆÄÀÏ·¯´Â, JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®°¡ ¸ðµç ÅÂ±× Çڵ鷯»ó¿¡¼­ ÀÌ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ» ÇÁ·ÎÅØ¼ÇÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, doStartTag ¿Í doEndTag ÀÇ »çÀÌ¿¡, ¿©·¯ Â÷·Ê ºÒ·Á °¥ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù.


Copyright 2002 Sun Microsystems, Inc. All rights reserved.
»ç¿ë¿¡´Â»ç¿ë Çã¶ô °è¾àÀÌ Àû¿ëµË´Ï´Ù.