自定义标签开发步骤(传统标签)

    技术2022-05-11  72

    初涉“标签库(Tag Library)”,以一个简单的hello标签开演示开发自定义标签的基本步骤:

     

    一、新建一个包test,包中新建一个标签类HelloTag.java,代码如下: 

     

    package  test; import  java.io.IOException; import  javax.servlet.jsp.JspException; import  javax.servlet.jsp.JspWriter; import  javax.servlet.jsp.PageContext; import  javax.servlet.jsp.tagext.Tag; public   class  HelloTag  implements  Tag  {    private PageContext pageContext;    private Tag parent;    public int doEndTag() throws JspException {        JspWriter out = pageContext.getOut();        try{            out.println("欢迎来到琉璃仙境.");        }catch(IOException e){            System.err.println(e.toString());        }        return EVAL_PAGE;    }    public int doStartTag() throws JspException {        return SKIP_BODY;    }    public Tag getParent() {        return parent;    }    public void release() {    }    public void setPageContext(PageContext arg0) {        this.pageContext = arg0;    }    public void setParent(Tag arg0) {        this.parent = arg0;    }}

     

    二、在WEB-INF中建立tlds文件夹,在tlds文件夹中加入标签描述文件MyTaglib.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" >      < description > Custom Tag Library </ description >      < tlib-version > 1.0 </ tlib-version >      < short-name > my </ short-name >          <!-- uri>/mytag</uri -->      < tag >          < name > hello </ name >          < tag-class > test.HelloTag </ tag-class >          < body-content > empty </ body-content >      </ tag >      </ taglib >

     

    三、修改WEB-INF目录下的web.xml文件,内容如下:

     

    <? xml version="1.0" encoding="UTF-8" ?> < web-app  version ="2.4"      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-app_2_4.xsd" >      < jsp-config >          < taglib >              < taglib-uri > /mytag </ taglib-uri >              < taglib-location > /WEB-INF/tlds/MyTaglib.tld </ taglib-location >          </ taglib >      </ jsp-config > </ web-app >

     

    四、编写hello.jsp调用已定义的hello标签,内容如下:

     

    < %@ page  contentType ="text/html;charset=gb2312"  % > < %@ taglib  uri ="/mytag"  prefix ="my"  % > < html >      < head >< title >< my:hello /></ title ></ head >          < body >< my:hello /></ body > </ html >

     

    注:自定义标签有三种引用方式,第一种方式,就如上所述在web.xml文件中设置<tablib>元素。第二种方式,直接将页面的tablib指令的uri属性指定为TLD文件的位置。第三种方式,在TLD文件中设置<uri>元素。


    最新回复(0)