|
|||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||
°³¿ä: ³»ºÎ Ŭ·¡½º | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼Òµå |
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 |
ÇʵåÀÇ »ó¼¼ |
public static final int EVAL_BODY_TAG
public static final int EVAL_BODY_BUFFERED
¸Þ¼ÒµåÀÇ »ó¼¼ |
public void setBodyContent(BodyContent b)
setBodyContent °¡ ºÒ·Á °¬À» ¶§¿¡´Â, ¾Ï¹¬ÀÇ Ãâ·Â¿ë ¿ÀºêÁ§Æ®ÀÎ ¿ÀºêÁ§Æ®ÀÇ out ÀÇ °ªÀº pageContext ¿ÀºêÁ§Æ®³»¿¡¼ ¹ú½á º¯°æµÇ°í ÀÖ½À´Ï´Ù. BodyContent ¿ÀºêÁ§Æ®´Â µ¥ÀÌÅͰ¡ ÇÏ´Ã »óÅ·Π°Ç³×¹Þ½À´Ï´Ù¸¸, ÀÌ ¿ÀºêÁ§Æ®¿¡¼´Â ÀÌÀüÀÇ È£Ãâ·Î »ç¿ëµÈ °ÍÀ» µ¥ÀÌÅÍ Å¬¸®¾î ÇÑ °ÍÀÌ ÀçÀÌ¿ëµÇ°í ÀÖ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù.
BodyContent ¿ÀºêÁ§Æ®´Â, doEndTag ¸Þ¼Òµå°¡ ºÒ·Á °¥ ¶§±îÁö ÀÌ¿ë °¡´ÉÇØ, ´ëÀÀÇÏ´Â ÄÁÅÙÃ÷¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. doEndTag ÀÇ È£Ãâ ÈÄ´Â BodyContent ¿ÀºêÁ§Æ®´Â ÀçÀÌ¿ëµÇ´Â ÀÏÀÌ ÀÖ½À´Ï´Ù.
b
- BodyContentdoInitBody()
,
IterationTag.doAfterBody()
public void doInitBody() throws JspException
JSP ÄÁÅ×À̳ʴÂ, TagExtraInfo ¿Í °°°Ô, doInitBody()°¡ ºÒ·Á °£ ÈÄ·Î ÁöÁ¤µÈ º¯¼öÀÇ °ªÀ» À絿±â ÇÕ´Ï´Ù.
JspException
- IterationTag.doAfterBody()
|
|||||||||
ÀüÀÇ Å¬·¡½º ´ÙÀ½ÀÇ Å¬·¡½º | ÇÁ·¹ÀÓ ÀÖ¾î ÇÁ·¹ÀÓ ¾øÀ½ | ||||||||
°³¿ä: ³»ºÎ Ŭ·¡½º | Çʵå | constructor¡¡ ¡¡ | ¸Þ¼Òµå | »ó¼¼: Çʵå | constructor¡¡ ¡¡ | ¸Þ¼Òµå |