사용자 정의 태그는 사용자 정의 JSP 언어 요소입니다. 사용자 정의 태그를 포함하는 JSP 페이지가 서블릿으로 변환될 때 태그는 태그 핸들러라는 객체에 대한 작업으로 변환됩니다. 그런 다음 웹 컨테이너는 JSP 페이지의 서블릿이 실행될 때 이러한 작업을 호출합니다.
JSP 태그 확장을 사용하면 JavaServer Page에 직접 삽입할 수 있는 새 태그를 생성할 수 있습니다. JSP 2.0 사양은 이러한 사용자 정의 태그를 작성하기 위한 단순 태그 처리기를 도입했습니다.
사용자 정의 태그를 작성하려면 SimpleTagSupport를 확장하면 됩니다. 클래스를 만들고 doTag() 재정의 태그에 대한 콘텐츠를 생성하기 위해 코드를 배치할 수 있는 메소드입니다.
"Hello" 태그 생성
<ex:Hello />
사용자 정의 JSP 태그를 생성하려면 먼저 태그 핸들러 역할을 하는 Java 클래스를 생성해야 합니다. 이제 HelloTag를 만들어 보겠습니다. 다음과 같이 클래스 -
package com.tutorialspoint; import javax.servlet.jsp.tagext.*; import javax.servlet.jsp.*; import java.io.*; public class HelloTag extends SimpleTagSupport { public void doTag() throws JspException, IOException { JspWriter out = getJspContext().getOut(); out.println("Hello Custom Tag!"); } }
위의 코드는 doTag() 메소드는 getJspContext()를 사용하여 현재 JspContext 객체를 가져옵니다. 메소드를 사용하여 "Hello Custom Tag!"를 전송합니다. 현재 JspWriter로 개체
위의 클래스를 컴파일하고 환경 변수 CLASSPATH에서 사용할 수 있는 디렉터리에 복사해 보겠습니다. 마지막으로
<taglib> <tlib-version>1.0</tlib-version> <jsp-version>2.0</jsp-version> <short-name>Example TLD</short-name> <tag> <name>Hello</name> <tag-class>com.tutorialspoint.HelloTag</tag-class> <body-content>empty</body-content> </tag> </taglib>
이제 위에서 정의한 맞춤 태그 Hello를 사용하겠습니다. 다음과 같이 JSP 프로그램에서 -
<%@ taglib prefix = "ex" uri = "WEB-INF/custom.tld"%> <html> <head> <title>A sample custom tag</title> </head> <body> <ex:Hello/> </body> </html>
위의 JSP를 호출하면 다음과 같은 결과가 생성됩니다. -
Hello Custom Tag!