¼Ò¼³°°ÀºJSP2ºÎ  7Àå Custom Tag & JavaMail  06 ¼Ó¼ºÀ» °¡Áö´Â űנ 

 

7.6 ¼Ó¼ºÀ» °¡Áö´Â ű×

 

XML ¹®¼­ÀÇ Å±״ ±âº»ÀûÀ¸·Î ¼Ó¼ºÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù. TLD ÆÄÀÏ ¶ÇÇÑ XML ¹®¼­ÀÌ´Ï Å±×ÀÇ ÀÛµ¿À» Á¶ÀýÇÒ ¼ö ÀÖ´Â ¿©·¯ ¼Ó¼ºµéÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀÇ Ç¥ÇöÀº ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

 

n        <prefix:name attribute1 = ¡°value1¡± attribute2 = ¡°vlaue2¡±.../>

 

ÅÂ±× Çڵ鷯 Ŭ·¡½º¿¡¼­ ¼Ó¼ºÀ» Áö¿øÇÏ´Â ¹æ¹ýÀº setter ¸Þ¼­µå¸¦ ÀÌ¿ëÇØ¼­ °£´ÜÇÏ°Ô Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µéÀÚ¸é, nameÀ̶ó´Â ¼Ó¼ºÀÌ ÀÖÀ» °æ¿ì, ±× ¼Ó¼ºÀ» ¼±¾ðÇϰí setter ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ¸Þ¼­µå¸¦ ¸¸µé¸é µË´Ï´Ù.

 

n        String name = ¡° ¡±;

n        public void setName(String name){

n          this.name = name;

n        }

 

±×·³ ¼Ó¼ºÀ» ó¸®ÇÏ´Â ÅÂ±× Çڵ鷯¸¦ ¸¸µé¾î º¸°Ú½À´Ï´Ù. ¿©±â¼­´Â Tag ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ TagSupport Ŭ·¡½º¸¦ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. À§¿¡¼­ ¼³¸í µå·ÈµíÀÌ ÀÌ¹Ì ±¸ÇöµÈ ºÎºÐÀº Á¦¿ÜÇϰí ÇÊ¿äÇÑ ºÎºÐ¸¸ ÀçÁ¤ÀÇÇØ »ç¿ëÇÏ¸é µË´Ï´Ù. ¿¹Á¦¿¡¼­´Â name°ú nationÀ̶ó´Â ¼Ó¼º°ªÀ» ¹Þ¾Æ¼­ ó¸®ÇØÁÖ´Â ÅÂ±× Çڵ鷯ÀÔ´Ï´Ù.

 

WelcomeTag.java

¼Ó¼º »ç¿ëÀ» À§ÇÑ ÅÂ±× Çڵ鷯

package tags;

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

public class WelcomeTag extends TagSupport {

  private String name = "";
  private String nation = "";

  public int doStartTag() {
    try{
      JspWriter out = pageContext.getOut();
      out.print(name + " from " + nation + "<br>");
      out.print("welcome to Korea!!!");
    }catch(IOException e){}
    return SKIP_BODY;
  }
  public void setName(String name){
    this.name = name;
  }
  public void setNation(String nation){
    this.nation = nation;
  }
}

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

 

¾Õ¿¡¼­ ¸¸µé¾ú´ø HelloTag Çڵ鷯¿Í´Â ´Þ¸® ¿©±â¼­´Â Tag ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ TagSupport Ŭ·¡½º¸¦ »ó¼Ó ¹Þ¾Æ ÇÊ¿äÇÑ ¸Þ¼­µå¸¸ ÀçÁ¤ÀÇ ÇÏ¿´½À´Ï´Ù. 

 

n        public class WelcomeTag extends TagSupport

 

±×¸®°í ¼Ó¼ºÀ» À§ÇÑ name°ú nationÀ» ¼±¾ðÇÏ°í ¼Ó¼º°ªÀ» ¹Þ±â À§Çؼ­ setter ¸Þ¼­µå¸¦ ¸¸µé¾ú½À´Ï´Ù.

 

n        String name = "";

n        String nation = "";

n          public void setName(String name){

n          this.name = name;

n        }

n          public void setNation(String nation){

n          this.nation = nation;

n        }

 

¿©±â¼­ ÇѰ¡Áö ÁÖÀÇÇÒ Á¡Àº À§¿¡¼­ º¸µí ¼Ó¼º°ªÀº StringÇüÀ¸·Î ³Ñ¾î¿Â´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à ¼ýÀÚ¸¦ ó¸®ÇÑ´Ù°í Çϸé, ¹Þ¾Æ¿Â ¼Ó¼º°ªÀÇ ÇüÀ» ¹Ù²Ù¾î¼­ ó¸®Çؾ߰ÚÁÒ.

 

´ÙÀ½À¸·Î Çڵ鷯 Ŭ·¡½º¸¦ Á¤ÀÇÇÒ TLDÀ» »ìÆìº¸°Ú½À´Ï´Ù. ¾Õ¿¡¼­ ¸¸µç noveltag.tldÆÄÀÏ¿¡ À§ WelcomeTag¸¦ Á¤ÀÇÇÏ´Â ºÎºÐ¸¸ Ãß°¡ÇÏ¿© ´Ù½Ã ÀúÀåÇÒ °ÍÀÔ´Ï´Ù.

 

noveltag.tld

<!&#8212;À§¿¡´Â À̹̠Á¤ÀǵȠºÎºÐ »ý·« -->
<tag>
    <name>welcome</name>
    <tag-class>tags.WelcomeTag</tag-class>
    <description>say welcome~ </description>
    <attribute>
      <name>name</name>
      <required>true</required>
    </attribute>
    <attribute>
      <name>nation</name>
      <required>true</required>
    </attribute>
  </tag>
<!--  WelcomeTag¸¦ À§ÇØ Ãß°¡µÈ ºÎºÐ -->
</taglib>

 

TLDÀÇ ³»¿ëÀ» º¸½Ã¸é, welcomeÀ̶ó´Â ű×ÀÇ À̸§À¸·Î tags.WelcomeTag Çڵ鷯¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ±×¸®°í ¾Æ·¡ºÎºÐ¿¡ <attribute>¿¤¸®¸ÕÆ®·Î ¼Ó¼ºÀÇ ÅÂ±× ¼Ó¼ºµéÀ» Á¤ÀÇ ÇØ ÁÖ¾ú½À´Ï´Ù. <attribute>¿¤¸®¸ÕÆ®´Â ±× ÇÏÀ§·Î À̸§À» ³ªÅ¸³»´Â <name>, Çʼö¿ä¼ÒÀÇ ¿©ºÎ¸¦ ³ªÅ¸³»´Â <required>¿¤¸®¸ÕÆ® µîÀ» °¡Áö°í ÀÖ½À´Ï´Ù. ÀÌÁ¦ ¸¶Áö¸·À¸·Î, JSP¿¡¼­ Ä¿½ºÅÒ Å±׸¦ »ç¿ëÇØ º¸°Ú½À´Ï´Ù.

 

welcometag.jsp

¼Ó¼º ¼³Á¤ÀÇ Ä¿½ºÅÒ Å±׸¦ »ç¿ëÇÏ´Â JSP

<%@ page contentType="text/html; charset=euc-kr" %>
<%@ taglib uri ="noveltag.tld" prefix = "noveljsp" %>
<html><body>
<h1><noveljsp:welcome name = "Alice" nation = "Wonderland"/></h1>
</body></html>

 

°á°ú¸¦ º¸½Ã¸é, ¼Ó¼º°ªÀ¸·Î µé¾î°£ ¡°Alice¡±¿Í ¡°Wonderland¡±¸¦ ÅÂ±× Çڵ鷯°¡ ó¸®ÇÏ°í ±× °á°ú¸¦ µ¹·Á ÁáÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¿©±â¼­ ¼Ó¼º name°ú Wonderland´Â TLD¿¡¼­ required¸¦ true·Î ÇÏ¿© Çʼö Ư¼ºÀ¸·Î ¼³Á¤ÇßÀ¸´Ï Çϳª¶óµµ »ý·«ÇÏ¸é ¾ÈµÊÀ» ÁÖÀÇÇϽñ⠹ٶø´Ï´Ù.



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