天天看点

jsp自定义标签的编写步骤

文章目录

    • 什么时候需要使用jsp自定义标签?
    • 自定义标签的开发步骤

什么时候需要使用jsp自定义标签?

当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签。

自定义标签的开发步骤

步骤一

编写一个普通的java类,此时需要继承TagSupport类

package com.vmaxtam.dotest;
import javax.servlet.jsp.tagext.TagSupport;

public class MyTagTest extends TagSupport {
    
}
           

步骤二

重写父类的setPageContext方法,作用于得到当前jsp页面的pageContext对象

public class MyTagTest extends TagSupport {    
    private PageContext pageContext;
    @Override
    public void setPageContext(PageContext pageContext) {
        this.pageContext=pageContext;
    }
}
           

步骤三

重写父类的doStartTag方法,里面写上你定义的标签的java操作,这里我定义的标签用作向浏览器输出一大段文字信息

@Override
    public int doStartTag() throws JspException {
        
    try {
      pageContext.getResponse().getWriter().write("小王说:晓哥,我大哥");
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        return super.doStartTag();
    }
           

步骤四

在你的web应用目录下,找到WEB-INF文件夹,在里面新建一个tld类型的文件(注:一定要是tld文件)

然后再里面注册你的标签吧:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
  <tlib-version>1.0</tlib-version><!-- 代表标签库的版本号 -->
  <jsp-version>1.2</jsp-version><!-- 代表jsp的版本 -->
  <short-name>mtt</short-name><!-- 你的标签库的简称 -->
  <uri>http://vmaxtam.com/mytag</uri><!-- 你标签库的引用uri -->
  
  <tag>
      <name>wangyiying</name><!-- 你定义的标签的名称 -->
       <tag-class>com.vmaxtam.dotest.MyTagTest</tag-class><!-- 对应的标签处理程序:包名+类名 -->
      <body-content>JSP</body-content><!-- 标签体内容的格式 -->
  </tag>
 </taglib>
           

注:如果你忘记了怎么写,可以参考jstl里的tld文件进行编写

步骤五

你要在使用你定义的标签的jsp页面导入你的标签库!就像导入类包一样(也称为:调用自己所写的标签)

只需在jsp页面写上下面内容:

<%@taglib uri="http://vmaxtam.com/mytag" prefix="mmt" %>
           

步骤6

接下面我们就可以开始使用标签了

<html>
  <head>   
    <title>My JSP 'testit.jsp' starting page</title>
  </head>
  
  <body>
      <mmt:mytag></mmt:mytag>
  </body>
</html>
           

这样就编写完了噢