Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Cách viết custom tag trong JSP

Custom tag là phần tử ngôn ngữ JSP do người dùng định nghĩa. Khi trang JSP chứa custom tag được dịch thành servlet, tag được chuyển thành các thao tác trên đối tượng gọi là tag handler. Web container sau đó gọi các thao tác đó khi servlet của trang JSP được thực thi.

JSP tag extensions cho phép tạo tag mới chèn trực tiếp vào JavaServer Page. Đặc tả JSP 2.0 giới thiệu Simple Tag Handlers để viết custom tag.

Để viết custom tag, chỉ cần extends lớp SimpleTagSupport và override phương thức doTag(), nơi đặt code sinh nội dung cho tag.

Tạo tag "Hello"

Giả sử muốn định nghĩa custom tag <ex:Hello> dùng không có body:

<ex:Hello />

Lớp 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!");
  }
}

Code trên dùng doTag() lấy JspContext qua getJspContext() và gửi "Hello Custom Tag!" đến JspWriter.

Biên dịch lớp, copy vào thư mục trong CLASSPATH. Tạo file tag library: <Tomcat-Installation-Directory>/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>

Sử dụng custom tag

<%@ taglib prefix = "ex" uri = "WEB-INF/custom.tld"%>
<html>
  <head> <title>A sample custom tag</title> </head>
  <body>
    <ex:Hello/>
  </body>
</html>

Kết quả

Hello Custom Tag!