JSP自定义标签(笔记)

自定义jsp标签:

       step1,写一个java类,继承SimpleTagSupport类。
       step2,在doTag方法里面,编写处理逻辑。
       step3,在.tld文件里面,描述标签。
          <body-content>empty</body-content>:
          empty: jsp标签没有标签体。
                     <body-content>scriptless</body-content>
          scriptless:jsp标签可以有标签体,但是,标签体
                          的内容不能够出现java代码。即不能够使用
                          <% %>,<%= %>,<%!  %>
                          <body-content>JSP</body-content>
          JSP:jsp标签有标签体,并且标签体的内容可以是
                 java代码。只有复杂标签技术才支持这个值,简
                 单标签技术不支持。

 

自定义JSP标签的例子:

       1.新建一个java类:

               package jspTagTest;

               import java.io.IOException;
               import java.text.SimpleDateFormat;
               import java.util.Date;

               import javax.servlet.jsp.JspException;
               import javax.servlet.jsp.JspWriter;
               import javax.servlet.jsp.PageContext;
               import javax.servlet.jsp.tagext.SimpleTagSupport;

               /**
               * @author Leinuoa
               * 自定义JSP标签
               */
               public class CustomJspTag extends SimpleTagSupport {
                   private String pattern;
 
                   public void setPattern(String pattern) {
                        this.pattern = pattern;
                    }

                   @Override
                   public void doTag() throws JspException, IOException {
                        PageContext ctx = (PageContext) getJspContext();
                        Date date = new Date();
                        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
                        JspWriter out = ctx.getOut();
  
                        out.println(sdf.format(date));
                   }
              }

         2.在WEB-INF目录下新建一个 xx.tld 文件,配置相关信息:

                <?xml version="1.0" encoding="UTF-8"?>

                <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                http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
                version="2.0">
 
                <tlib-version>1.1</tlib-version>
                <short-name>c1</short-name>
                <uri>http://webTest7/mytag</uri>
                <tag>
                <name>date</name>
                <tag-class>jspTagTest.CustomJspTag</tag-class>
                <body-content>empty</body-content>
                <attribute>
                    <name>pattern</name>
                    <required>true</required>
                    <rtexprvalue>false</rtexprvalue>
                </attribute>
                </tag>
 
                </taglib>

 

        3.应用到JSP中:

               <%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8" %>
               <%@taglib uri="http://webTest7/mytag" prefix="c1" %>

                   ... ...

                   <c1:date pattern="yyyy年MM月dd日" /><!-- date为tld文件中的<name>date</name> 名字必 须一致 -->

                   ... ...

 

你可能感兴趣的:(jsp,自定义标签)