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

¸ðµç ½´ÆÛ ÀÎÅÍÆäÀ̽º:
IterationTag , Tag
±âÁ¸ÀÇ ½ÇÀå Ŭ·¡½ºÀÇ À϶÷:
BodyTagSupport

public interface BodyTag
extends IterationTag

BodyTag ÀÎÅÍÆäÀ̽º´Â, IterationTag ¸¦ È®ÀåÇÑ ÀÎÅÍÆäÀ̽ºÀ̸ç, ÅÂ±× Çڵ鷯°¡ ÅÂ±× º»Ã¼ÀÇ Æò°¡ ³»¿ëÀ» Á¶ÀÛÇÏ´Â ¸Þ¼Òµå°¡ Ãß°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù.

ÅÂ±× º»Ã¼ÀÇ ÄÁÅÙÃ÷ÀÇ Á¶ÀÛÀº ÅÂ±× Çڵ鷯ÀÇ ¿ªÇÒÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ÅÂ±× Çڵ鷯´Â ÅÂ±× º»Ã¼ÀÇ ÄÁÅÙÃ÷¸¦ ²¨³», bodyContent.getString ¸Þ¼Òµå¸¦ »ç¿ëÇØ String ·Î º¯È¯ÇÑ ÈÄ, ±×°ÍÀ» »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¶Ç, ÅÂ±× Çڵ鷯´Â ÅÂ±× º»Ã¼ÀÇ ÄÁÅÙÃ÷¸¦ ²¨³», bodyContent.writeOut ¸Þ¼Òµå¸¦ »ç¿ëÇØ, µÑ·¯½Î°í ÀÖ´Â JspWriter ¿¡ Ãâ·ÂÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

BodyTag ¸¦ ½ÇÀåÇϰí ÀÖ´Â ÅÂ±× Çڵ鷯´Â, doStartTag ¸Þ¼Òµå°¡ SKIP_BODY, EVAL_BODY_INCLUDE, EVAL_BODY_BUFFERED ¸¦ µ¹·ÁÁÙ ¼ö°¡ ÀÖ´Â Àܴ̿Â, IterationTag ¸¦ ½ÇÀåÇϰí ÀÖ´Ù°í º¸ÀÔ´Ï´Ù.

EVAL_BODY_INCLUDE °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì´Â, Æò°¡´Â IterationTag ³»¿¡¼­ ¹ß»ýÇÑ °ÍÀÔ´Ï´Ù.

EVAL_BODY_BUFFERED °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì´Â, ÅÂ±× º»Ã¼ÀÇ Æò°¡¸¦ ²¨³»±â (À§ÇØ)¶§¹®¿¡, JSP ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ý¼ºµÈ ÄÚµå·ÎºÎÅÍ BodyContent ¿ÀºêÁ§Æ®°¡ ÀÛ¼ºµË´Ï´Ù. JSP ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ý¼ºµÈ ÄÚµå´Â, pageContext ÀÇ pushBody ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î, BodyContent ¿ÀºêÁ§Æ®¸¦ ÃëµæÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå¿¡´Â, ¶Ç, ÀüÀÇ Ãâ·Â ¿ÀºêÁ§Æ®¸¦ º¸Á¸ÇÏ´Â ¿ªÇÒÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆäÀÌÁö ÄÄÆÄÀÏ·¯´Â, PageContext Ŭ·¡½ºÀÇ popBody ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ ÀÌ ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ È£ÃâÀº, Ãâ·Â ¿ÀºêÁ§Æ®ÀÇ º¹¿øµµ ½Ç½ÃÇÕ´Ï´Ù.

ÀÌ ÀÎÅÍÆäÀ̽º¿¡´Â, 1 °³ÀÇ ¼³Á¤ ¸Þ¼Òµå¿Í 1 °³ÀÇ ¾×¼Ç ¸Þ¼Òµå¿Í ÇÔ²², 1 °³(»ì)ÀÇ »õ·Î¿î ÇÁ·ÓÆÛƼ°¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù.

ÇÁ·ÓÆÛƼ

BodyContent ¿ÀºêÁ§Æ®¸¦ º¸°ü À¯ÁöÇÏ´Â bodyContent ÇÁ·ÓÆÛƼ°¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù. JSP ÆäÀÌÁöÀÇ ½ÇÀå ¿ÀºêÁ§Æ®´Â ÀÌ ¿ÀºêÁ§Æ®¿¡, ÅÂ±× º»Ã¼ÀÇ Æò°¡¿Í (Çʿ信 µû¶ó¼­) ÀçÆò°¡ÀÇ °á°ú¸¦ º¸Á¸ÇÕ´Ï´Ù. ¼³Á¤ ¸Þ¼Òµå (setBodyContent)´Â, doStartTag()°¡ EVAL_BODY_BUFFERED ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ìÀÎ ¸¸Å­ ºÒ·Á °©´Ï´Ù.

¸Þ¼Òµå

bodyContent ÇÁ·ÓÆÛƼÀÇ ¼³Á¤ ¸Þ¼Òµå¿¡ °¡¼¼ÇØ, ¾×¼Ç ¸Þ¼ÒµåÀÇ doInitBody()°¡ Ãß°¡µÇ°í ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, setBodyContent()ÀÇ Á÷ÈÄ, ÅÂ±× º»Ã¼ÀÇ Æò°¡ Àü¿¡ ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, doStartTag()°¡ EVAL_BODY_BUFFERED ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ìÀÎ ¸¸Å­ ºÒ·Á °©´Ï´Ù.

¶óÀÌÇÁ »çÀÌŬ

¶óÀÌÇÁ »çÀÌŬÀÇ ÀÚ¼¼ÇÑ °ÍÀº, ´ÙÀ½ÀÇ ÃµÀ̵µ¿¡ ¼³¸íµÇ°í ÀÖ½À´Ï´Ù. doStartTag(), setBodyContent(), doInitBody(), BODY, doAfterBody()ÀÇ ½ÇÇàÁß¿¡ ½½·Î¿ì µÇ´Â ¿¹¿Ü´Â, ½ÇÇà ¼øÂ÷ ¼ø¼­¿¡ ³¢¾îµé¾î, ÅÂ±× Çڵ鷯°¡ TryCatchFinally ÀÎÅÍÆäÀ̽º¸¦ ½ÇÀåÇϰí ÀÖÁö ¾Ê´Â ÇÑ, ½ºÅÃÀÇ »óÀ§¿¡ Àü´ÞµË´Ï´Ù. »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â, TryCatchFinally ÀÎÅÍÆäÀ̽º¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

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

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

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

EVAL_BODY_INCLUDE °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì, setBodyContent() ¹× doInitBody()´Â ºÒ·Á °¡Áö ¾Ê½À´Ï´Ù. ÅÂ±× º»Ã¼°¡ Æò°¡µÇ¾î ÇöÀçÀÇ Ãâ·Â¿¡ °Ç³×¹ÞÀº ÈÄ¿¡ doAfterBody()°¡ ºÒ·Á °¡ 0 ȸ ÀÌ»ó ¹Ýº¹ÇØÁö°í ³ª¼­, doEndTag()°¡ ºÒ·Á °©´Ï´Ù.

EVAL_BODY_BUFFERED °¡ µ¹·ÁÁÖ¾îÁ³À» °æ¿ì, setBodyContent()¿Í doInitBody()°¡ ºÒ·Á °©´Ï´Ù. ÅÂ±× º»Ã¼°¡ Æò°¡µÇ¸é(ÀÚ), doAfterBody()°¡ ºÒ·Á °¡ 0 ȸ ÀÌ»ó ¹Ýº¹ÇØÁö°í ³ª¼­, doEndTag()°¡ ºÒ·Á °©´Ï´Ù.


ÇʵåÀÇ °³¿ä
static int EVAL_BODY_BUFFERED
          »õ·Î¿î ¹öÆÛ (ÀÌ Å±×ÀÇ º»Ã¼¸¦ Æò°¡ÇÏ´Â BodyContent)ÀÇ ÀÛ¼ºÀ» ¿ä±¸ÇÕ´Ï´Ù.
static int EVAL_BODY_TAG
          Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  Java JSP API 1.2 ¿¡¼­´Â, BodyTag.EVAL_BODY_BUFFERED ¶Ç´Â IterationTag.EVAL_BODY_AGAIN ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.
 
ÀÎÅÍÆäÀ̽º javax.servlet.jsp.tagext. IterationTag ·ÎºÎÅÍ °è½ÂÇÑ Çʵå
EVAL_BODY_AGAIN
 
ÀÎÅÍÆäÀ̽º javax.servlet.jsp.tagext. Tag ·ÎºÎÅÍ °è½ÂÇÑ Çʵå
EVAL_BODY_INCLUDE , EVAL_PAGE , SKIP_BODY , SKIP_PAGE
 
¸Þ¼ÒµåÀÇ °³¿ä
 void doInitBody ()
          º»Ã¼ÀÇ Æò°¡¸¦ ÁغñÇÕ´Ï´Ù.
 void setBodyContent (BodyContent  b)
          bodyContent ÇÁ·ÓÆÛƼ¸¦ ¼³Á¤ÇÕ´Ï´Ù.
 
ÀÎÅÍÆäÀ̽º javax.servlet.jsp.tagext. IterationTag ·ÎºÎÅÍ °è½ÂÇÑ ¸Þ¼Òµå
doAfterBody
 
ÀÎÅÍÆäÀ̽º javax.servlet.jsp.tagext. Tag ·ÎºÎÅÍ °è½ÂÇÑ ¸Þ¼Òµå
doEndTag , doStartTag , getParent , release , setPageContext , setParent
 

ÇʵåÀÇ »ó¼¼

EVAL_BODY_TAG

public static final int EVAL_BODY_TAG
Ãßõ µÇ°í ÀÖÁö ¾Ê½À´Ï´Ù.  Java JSP API 1.2 ¿¡¼­´Â, BodyTag.EVAL_BODY_BUFFERED ¶Ç´Â IterationTag.EVAL_BODY_AGAIN ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

EVAL_BODY_BUFFERED ¹× EVAL_BODY_AGAIN ¿Í °°Àº °ªÀ» °¡Áö´Â ºñÃßõ Á¤¼ö. ÀÌ Á¤¼ö´Â ºñÃßõ API ·Î ÁöÁ¤µÇ¾î ÀÖ½À´Ï´Ù. °¡´ÉÇÑ ÇÑ, º¸´Ù ¾Ë±â ½¬¿î À̸§À» °¡Áö´Â EVAL_BODY_BUFFERED ¿Í EVAL_BODY_AGAIN ¸¦ »ç¿ëÇØ ÁÖ¼¼¿ä.

EVAL_BODY_BUFFERED

public static final int EVAL_BODY_BUFFERED
»õ·Î¿î ¹öÆÛ (ÀÌ Å±×ÀÇ º»Ã¼¸¦ Æò°¡ÇÏ´Â BodyContent)ÀÇ ÀÛ¼ºÀ» ¿ä±¸ÇÕ´Ï´Ù. doStartTag °¡ BodyTag ¸¦ ½ÇÀåÇϰí ÀÖ´Â °æ¿ì´Â, doStartTag ·ÎºÎÅÍ ¹öÆÛ°¡ µ¹·ÁÁÖ¾îÁý´Ï´Ù. ÀÌ Å¬·¡½º°¡ BodyTag ¸¦ ½ÇÀåÇϰí ÀÖÁö ¾Ê´Â °æ¿ì´Â, doStartTag ·Î ¹Ýȯ°ªÀ¸·Î¼­ ÀÌ °ªÀ» µ¹·ÁÁÖ´Â °ÍÀº ºÎÁ¤ÇÕ´Ï´Ù.
¸Þ¼ÒµåÀÇ »ó¼¼

setBodyContent

public void setBodyContent(BodyContent  b)
bodyContent ÇÁ·ÓÆÛƼ¸¦ ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, ¾×¼ÇÀÌ ºÒ·Á °¥ ¶§¸¶´Ù JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ 1 ȸ¸¸ ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, doInitBody ÀÇ Àü¿¡ ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, űװ¡ ÇÏ´ÃÀÇ °æ¿ì´Â ºÒ·Á °¡Áö ¾Ê½À´Ï´Ù. ¶Ç, űװ¡ ÇÏ´ÃÀÌ ¾Æ´Ñ °æ¿ì¿¡¼­µµ, doStartTag() ¸Þ¼Òµå°¡ SKIP_BODY ¶Ç´Â EVAL_BODY_INCLUDE ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â, ºÒ·Á °¡Áö ¾Ê½À´Ï´Ù.

setBodyContent °¡ ºÒ·Á °¬À» ¶§¿¡´Â, ¾Ï¹¬ÀÇ Ãâ·Â¿ë ¿ÀºêÁ§Æ®ÀÎ ¿ÀºêÁ§Æ®ÀÇ out ÀÇ °ªÀº pageContext ¿ÀºêÁ§Æ®³»¿¡¼­ ¹ú½á º¯°æµÇ°í ÀÖ½À´Ï´Ù. BodyContent ¿ÀºêÁ§Æ®´Â µ¥ÀÌÅͰ¡ ÇÏ´Ã »óÅ·Π°Ç³×¹Þ½À´Ï´Ù¸¸, ÀÌ ¿ÀºêÁ§Æ®¿¡¼­´Â ÀÌÀüÀÇ È£Ãâ·Î »ç¿ëµÈ °ÍÀ» µ¥ÀÌÅÍ Å¬¸®¾î ÇÑ °ÍÀÌ ÀçÀÌ¿ëµÇ°í ÀÖ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.

BodyContent ¿ÀºêÁ§Æ®´Â, doEndTag ¸Þ¼Òµå°¡ ºÒ·Á °¥ ¶§±îÁö ÀÌ¿ë °¡´ÉÇØ, ´ëÀÀÇÏ´Â ÄÁÅÙÃ÷¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. doEndTag ÀÇ È£Ãâ ÈÄ´Â BodyContent ¿ÀºêÁ§Æ®´Â ÀçÀÌ¿ëµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ:
b - BodyContent
°ü·Ã Ç׸ñ:
doInitBody() , IterationTag.doAfterBody()

doInitBody

public void doInitBody()
                throws JspException 
º»Ã¼ÀÇ Æò°¡¸¦ ÁغñÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, setBodyContent °¡ ºÒ·Á °¡°í ³ª¼­ ÅÂ±× º»Ã¼°¡ ÃÖÃÊ·Î Æò°¡µÇ±â Àü¿¡, JSP ÆäÀÌÁö ½ÇÀå ¿ÀºêÁ§Æ®¿¡ ÀÇÇØ ºÒ·Á °©´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â, űװ¡ ÇÏ´ÃÀÇ °æ¿ì¿¡´Â ºÒ·Á °¡Áö ¾Ê½À´Ï´Ù. ¶Ç, űװ¡ ÇÏ´ÃÀÌ ¾Æ´Ñ °æ¿ì¿¡¼­µµ, doStartTag() ¸Þ¼Òµå°¡ SKIP_BODY ¶Ç´Â EVAL_BODY_INCLUDE ¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì´Â, ºÒ·Á °¡Áö ¾Ê½À´Ï´Ù.

JSP ÄÁÅ×À̳ʴÂ, TagExtraInfo ¿Í °°°Ô, doInitBody()°¡ ºÒ·Á °£ ÈÄ·Î ÁöÁ¤µÈ º¯¼öÀÇ °ªÀ» À絿±â ÇÕ´Ï´Ù.

¿¹¿Ü:
JspException -  
°ü·Ã Ç׸ñ:
IterationTag.doAfterBody()


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