¼Ò¼³°°ÀºJSP2ºÎ  7Àå Custom Tag & JavaMail  07 Body¸¦ °¡Áö´Â űנ 

 

7.7 Body¸¦ °¡Áö´Â ű×

 

Áö±Ý±îÁö ¿ì¸®´Â <prefix:tagname />ÇüÀÇ ÇÑ Áٷθ¸ ÀÌ·ç¾îÁø µ¶¸³Çü ű׸¸À» »ç¿ëÇØ ¿Ô½À´Ï´Ù. ÀÌ Àý¿¡¼­´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î Ç¥½ÃµÈ Body Áï, º»Ã¼¸¦ Æ÷ÇÔÇÏ´Â Ä¿½ºÅÒ Å±׿¡ ´ëÇØ »ìÆìº¼ °ÍÀÔ´Ï´Ù.

 

n        <prefix:tagname>

n         body

n        <prefix:tagname>

 

¾Õ¿¡¼­ÀÇ ÅÂ±× Çڵ鷯 ¿¹Á¦¿¡¼­ ÀÏÀ» ó¸®ÇÏ´Â doStartTag ¸Þ¼­µå´Â ¸®ÅÏ °ªÀ¸·Î SKIP_BODY¸¦ ³Ñ°ÜÁÖ¾ú½À´Ï´Ù. À̰ÍÀº ¹ÙµðÀÇ ³»¿ëÀÌ ÀÖµç ¾øµç »ó°üÇÏÁö ¾Ê°í ¹«½ÃÇØ ¹ö¸®´Â °ÍÀ» ÀǹÌÇß½À´Ï´Ù. ±×·¸°Ô ÇÏÁö ¾Ê°í ¹ÙµðÀÇ ³»¿ëÀ» Ãâ·ÂÇÏ·Á¸é, ¸®ÅÏ °ªÀ¸·Î doStartTag ¸Þ¼­µå°¡ EVAL_BODY_INCLUDE¸¦ µ¹·ÁÁà¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ ¿©·¯ °³ÀÇ Å±׸¦ ó¸®ÇÏ´Â °æ¿ì ÇϳªÀÇ Å±װ¡ ³¡³ª´õ¶óµµ °è¼Ó ¼öÇàÀ» ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ­ űװ¡ ³¡³¯ ¶§ È£ÃâµÇ´Â doEndTag ¸Þ¼­µåÀÇ ¸®ÅÏ °ªÀ» EVAL_PAGE·Î ÁÖ¾î¾ß ÇÕ´Ï´Ù.

 

doStartTag ¸Þ¼­µåÀÇ ¸®ÅÏ °ª

n        SKIP_BODY : ¹ÙµðÀÇ ³»¿ë À¯¹«¿¡ »ó°ü¾øÀÌ ¹«½Ã

n        EVAL_BODY_INCLUDE : ¹Ùµð ³»¿ëÀ» Æ÷ÇÔ Ã³¸® °¡´ÉÇÏ°Ô ÇÔ

 

±×·³ À§¿¡ ¼³¸íÇÑ °ÍµéÀ» »ý°¢Çϸ鼭 ¹Ùµð°¡ Æ÷ÇÔµÈ Å±׸¦ ó¸®ÇÏ´Â ÅÂ±× Çڵ鷯 Ŭ·¡½º¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù.  ´ÙÀ½ ¿¹Á¦´Â Ä¿½ºÅÒ Å±׸¦ ÅëÇØ¼­ ¹ÙµðÀÇ »ö±ò°ú Å©±â¸¦ Á¶ÀýÇÑ ÈÄ ³»¿ëÀ» ±×´ë·Î Ãâ·ÂÇÏ´Â Çڵ鷯ÀÔ´Ï´Ù.

 

FontMagic.java

¹Ùµð¸¦ Ãâ·ÂÇÏ´Â ÅÂ±× Çڵ鷯

package tags;

import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class FontMagic extends TagSupport {

  String color = "black";
  String size = "3";

  public int doStartTag() {
    try{
      JspWriter out = pageContext.getOut();
      out.print("<font color="+color+" size = "+ size + ">");
    }catch(IOException e){}
    return EVAL_BODY_INCLUDE;
  }
  public int doEndTag(){
    try{
      JspWriter out = pageContext.getOut();
      out.print("</font></br>");
    }catch(IOException e){}
    return EVAL_PAGE;
  }
  public void setColor(String color){
    this.color = color;
  }
  public void setSize(String size){
    this.size = size;
  }
}

C:\jakarta\webapps\MySample\WEB-INF\classes\tags>javac FontMagic.java

 

¼Ò½º ³»¿ëÀ» º¸½Ã¸é ÆùÆ® Ä÷¯¿Í »çÀÌÁî ¼Ó¼ºÀ» Á¤ÀÇÇØ ÁÖ´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×·±µ¥ À̰ÍÀÌ ¾ÕÀÇ ¿¹Á¦µé°ú ´Ù¸¥Á¡Àº doStartTag ¸Þ¼­µå¿¡¼­ ¸®ÅÏ °ªÀ¸·Î EVAL_BODY_INCLUDE¸¦ µ¹·ÁÁÖ¾î ¹Ùµð¸¦ Æ÷ÇÔÇϰڴٴ °ÍÀ» ¾Ë¸®°í ÀÖ½À´Ï´Ù.

 

n        return EVAL_BODY_INCLUDE;

 

¹Ùµð¸¦ ó¸®Çϰí űװ¡ ³¡³¯ ¶§ È£ÃâµÇ´Â doEndTag ¸Þ¼­µå¿¡¼­´Â ű×ÀÇ °è¼ÓÀûÀÎ ¼öÇàÀ» À§Çؼ­ EVAL_PAGE¸¦ ¸®ÅÏ ÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

 

n        return EVAL_PAGE;

 

À§ÀÇ µÎ °¡Áö »çÇ׸¸ ÁÖÀÇÇÑ´Ù¸é Çϳªµµ ¾î·Á¿ï °ÍÀÌ ¾ø´Â Çڵ鷯ÀÔ´Ï´Ù. ´ÙÀ½À¸·Î Çڵ鷯 Ŭ·¡½º¸¦ Á¤ÀÇÇÒ TLDÀ» »ìÆìº¸°Ú½À´Ï´Ù. ¿ª½Ã ¾ÕÀÇ noveltag.tld ÆÄÀÏ¿¡¼­ FontMagic Çڵ鷯 Ŭ·¡½º¸¦ Á¤ÀÇÇÏ´Â ºÎºÐ¸¸ Ãß°¡ÇÏ¿© ´Ù½Ã ÀúÀåÇÒ °ÍÀÔ´Ï´Ù.

 

noveltag.tld

<! ... ... ¾ÕºÎºÐ »ý·« -->
  <tag>
    <name>fontmagic</name>
    <tag-class>tags.FontMagic</tag-class>
    <description>adjust font color and font size </description>
    <attribute>
      <name>color</name>
      <required>false</required>
    </attribute>
    <attribute>
      <name>size</name>
      <required>false</required>
    </attribute>
  </tag>
<!--  ¿©±â±îÁö FontMagicÀ» À§ÇØ Ãß°¡µÈ ºÎºÐ -->
</taglib>

 

Ưº°È÷ ´õ ¼³¸íµå¸± °ÍÀÌ ¾ø±º¿ä. ´ÜÁö ¿©±â¼­´Â µÎ ¼Ó¼ºÀÇ required ¿¤¸®¸ÕÆ® °ªÀ» false·Î ÇØ¼­ ű׿¡¼­ ±× ¼Ó¼ºÀ» »ý·«Çصµ µÈ´Ù´Â °Í¸¸ ÁÖÀÇÇØ º¸½Ê½Ã¿À. À§ÀÇ ÅÂ±× Çڵ鷯¸¦ º¸½Ã¸é, color¿Í size°ªÀ» °¢°¢ black°ú 3À¸·Î µðÆúÆ® °ªÀ» Á¤ÇØ ÁÖ¾úÀ½À» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×·³ JSP¿¡¼­ ű׸¦ »ç¿ëÇØ º¸µµ·Ï ÇϰڽÀ´Ï´Ù.

 

fontmagic.jsp

body³»¿ëÀ» Ãâ·ÂÇÏ´Â Ä¿½ºÅÒ Å±×ÀÇ JSP

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib uri ="noveltag.tld" prefix = "noveljsp" %>
<html><body>
<noveljsp:fontmagic>
µðÆúÆ® °ªÀ̱º¿ä.
</noveljsp:fontmagic>
<noveljsp:fontmagic color="blue" size="5">
ÆÄ¶õ»ö¿¡ 5Å©±âÀÔ´Ï´Ù.
</noveljsp:fontmagic>
<noveljsp:fontmagic color="red" size="7">
»¡°­»ö¿¡ 7Å©±âÀÔ´Ï´Ù.
</noveljsp:fontmagic>
</body></html>

 

°á°ú¸¦ º¸½Ã¸é, ¼Ó¼ºÀ» °¡ÁöÁö ¾ÊÀº ű×, ¼Ó¼ºÀ» ´Ù¸£°Ô °¡Áø µÎ°³ÀÇ Å±װ¡ °¢°¢ ¹Ùµð ³»¿ëÀ» °¡Á®¼­ ¼Ó¼º¿¡ µû¶ó¼­ ±ÛÀÚÀÇ »ö°ú Å©±â°¡ Ãâ·ÂµÇ¾úÀ½À» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áö±ÝÀÇ ¿¹Á¦´Â HTMLÀÇ <font>ű׸¦ »ç¿ëÇÏ´Â °Í°ú º°¹Ý ´Ù¸¦ °ÍÀÌ ¾øÁö¸¸, °íÁ¤µÈ ¿©·¯ Á¾·ùÀÇ Å×À̺íÀ̳ª ÆùÆ® µîÀÌ ¾²ÀÌ´Â °÷À̶ó¸é, Ä¿½ºÅÒ Å±׸¦ »ç¿ëÇØ ·¹À̾ƿôÀ» Á¤ÇØ µÎ¸é Æí¸®ÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.



jabookÀúÀÚ¸íÇÔ
Á¦¸ñ:¼Ò¼³°°ÀºJSP2ºÎ
ÀúÀÚ:ÃÖ¿µ°ü