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

상위 JSP 페이지의 속성을 허용할 수 있는 JSP에서 사용자 정의 태그를 생성하려면 어떻게 해야 합니까?

<시간/>

사용자 정의 태그와 함께 다양한 속성을 사용할 수 있습니다. 속성 값을 허용하려면 맞춤 태그 클래스가 setter를 구현해야 합니다. 아래와 같은 JavaBean setter 메소드와 동일한 메소드 -

package com.tutorialspoint;

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

public class HelloTag extends SimpleTagSupport {
   private String message;
   public void setMessage(String msg) {
      this.message = msg;
   }
   StringWriter sw = new StringWriter();
   public void doTag()
   throws JspException, IOException {
      if (message != null) {
         /* Use message from attribute */
         JspWriter out = getJspContext().getOut();
         out.println( message );
      } else {
         /* use message from the body */
         getJspBody().invoke(sw);
         getJspContext().getOut().println(sw.toString());
      }
   }
}

속성 이름은 "message"입니다. , 따라서 setter 메소드는 setMessage()입니다. . 이제 를 사용하여 TLD 파일에 이 속성을 추가해 보겠습니다. 다음과 같은 요소 -

<taglib>
   <tlib-version>1.0</tlib-version>
   <jsp-version>2.0</jsp-version>
   <short-name>Example TLD with Body</short-name>

   <tag>
      <name>Hello</name>
      <tag-class>com.tutorialspoint.HelloTag</tag-class>
      <body-content>scriptless</body-content>

      <attribute>
      <name>message</name>
      </attribute>

   </tag>
</taglib>

다음과 같이 message 속성으로 JSP를 따라가 보자 -

<%@ taglib prefix = "ex" uri = "WEB-INF/custom.tld"%>

<html>
   <head>
      <title>A sample custom tag</title>
   </head>

   <body>
      <ex:Hello message = "This is custom tag" />
   </body>
</html>

이것은 다음 결과를 생성합니다 -

This is custom tag