JAVA

[Java] Custom Tag.1 커스텀태그 만들기

tenn 2012. 5. 29. 17:24

커스텀 태그 만들기


1. 라이브러리 임포트



jsp-api.jar



2. Tag Servlet 작성


package tags;


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

public class helloTagServlet implements Tag {
  private PageContext pageContext;
  private Tag parentTag;

  public void setPageContext(PageContext pageContext) {
    this.pageContext = pageContext;
  }

  public void setParent(Tag parentTag) {
    this.parentTag = parentTag;
  }

  public Tag getParent() {
    return this.parentTag;
  }


  public int doStartTag() throws JspException {
    try {
      JspWriter out = pageContext.getOut();

      out.print("Hello World!");

    } catch(Exception e) {
      throw new JspException(e.getMessage());
    }
      return SKIP_BODY;
    }

    public int doEndTag() throws JspException {
      return EVAL_PAGE;
    }

  public void release() {}
}


3. tld 작성


<?xml version="1.0" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
            web-jsptaglibrary_2_0.xsd"
        version="2.0">

  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>helloTag</short-name>
  <tag>
    <name>helloTag</name>
    <tag-class>tags.helloTagServlet</tag-class>
    <body-content>empty</body-content>
  </tag>
</taglib>

4. web.xml에 추가


<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4"> <jsp-config> <taglib> <taglib-uri>tags/hello</taglib-uri> <taglib-location>/WEB-INF/lib/hello.tld</taglib-location> </taglib> </jsp-config> </web-app>


5. jsp에 사용


uri web.xml에서 설정한 <taglib-uri>의 값을 설정



<%@ page contentType="text/html; charset=windows-31j"

         import="tags.*" %>


<%@ taglib uri=" tags/hello "

    prefix="hello" %>


<HTML>

<BODY>


<hello:helloTag />