Computer >> 컴퓨터 >  >> 프로그램 작성 >> 프로그램 작성

JSP에서 사용자 정의 태그를 만들고 싶습니다. JSP에서 사용자 정의 태그를 작성하는 방법은 무엇입니까?

<시간/>

사용자 정의 태그는 사용자 정의 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에서 사용할 수 있는 디렉터리에 복사해 보겠습니다. 마지막으로 webapps\ROOT\WEB-INF\custom.tld 태그 라이브러리 파일을 만듭니다. .

<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!