javaWeb自定义标签用法实例详解

  

本文实例讲述了javaWeb自定义标签用法。分享给大家供大家参考,具体如下:

  

  

自定义标签主要用于移除Jsp页面中Java的代码。
  移除jsp页面中java的代码,只需要完成两个步骤:
  ——编写一个继承TagSupport的Java类,并覆盖doStartTag方法,把jsp页面中Java的代码写到doStartTag方法中。
  ——编写标签库描述符(tld)文件,在tld文件中对自定义标签进行描述。
  完成以上操作,即可在JSP页面中导入和使用自定义标签。

  

标签处理类:HelloTag。java
  标签描述文件:hellotag。tld
  jsp页面调用:& lt; % @ taglib %祝辞定义表情
  [可选]在web . xml中配置hellotag.tld映射

  

<强>应用过程:

  

索引。jsp==祝辞(web . xml)==祝辞hellotag.tld==祝辞HelloTag.java

  

<强>定义标签支持类如下:

  

HelloTag.java         包china.hubei;   进口java.io.IOException;   进口javax.servlet.jsp。*;   进口javax.servlet.jsp.tagext.TagSupport;//自动定义标签   公开课HelloTag延伸TagSupport {   公共int doStartTag()抛出JspException {   PageContext pg=(PageContext) super.pageContext;   JspWriter=pg.getOut ();   尝试{   出去了。println (“hello world”);   }捕捉(IOException e) {   }   返回TagSupport.SKIP_BODY;   }   }      之前      

标签描述类,后缀都是. tld,内容符合xml语法规则

  

hellotag.tld         & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; 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 web-jsptaglibrary_2_0.xsd”   version=" 2.0 "比;   & lt; tlib-version> 1.0 & lt;/tlib-version>& lt; !——标签库的版本——比;   & lt; short-name> dqtag & lt; !——标签库在TLD中的描述名称——比;   & lt; tag>   & lt; name> hello& lt; !——标签在jsp中使用名称——比;   & lt; tag-class> china.hubei.HelloTag & lt; !——标签指向的类文件——比;   & lt; body-content> empty & lt; !——标签内容为空——比;   & lt;/tag>   & lt;/taglib>      之前      

在jsp页面使用自定义标签

        % @ & lt;页面语言=癹ava”=癹ava.util进口。*”pageEncoding=" utf - 8 " %比;   % @ & lt;页面isELIgnored=" false " %比;   & lt; % @ taglib前缀=癿ytag”uri="/web - inf/hellotag。tld“%比;   & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比;   & lt; html>   & lt; head>   & lt; title>标题& lt;/title>   & lt; !   & lt;链接rel="样式表" type=" text/css " href=" https://www.yisu.com/zixun/styles.css " rel=巴獠縩ofollow”比;   ——比;   & lt;脚本语言=癹avascript”比;   & lt;/script>   & lt;/head>   & lt; body>   & lt; h2> & lt; mytag:你好/祝辞& lt;/h2>   & lt;/body>   & lt;/html>      之前      

执行效果如下:

  

 javaWeb自定义标签用法实例详解

  

自定义标签改进,将tld文件中的标签描述文件移到web . xml文件中。就是在web . xml文件中为tld文件做一个映射。

  

即在web . xml添加如下内容:

        & lt; jsp-config>   & lt; taglib>   & lt; taglib-uri> myhello   & lt; taglib-location>/web - inf/hellotag.tld   & lt;/taglib>   & lt;/jsp-config>      之前      

index . jsp里面的引入标签改为如下:

        & lt; % @ taglib前缀=癿ytag”uri=" myhello %比;      之前      

备注:

  

 javaWeb自定义标签用法实例详解

  

  

JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例对象,然后按照JSP规范定义的通信规则依次调用它的方法。

  

1、公共空setPageContext (PageContext pc), JSP引擎实例化标签处理器后,将调用setPageContext方法将JSP页面的PageContext对象传递给标签处理器,标签处理器以后可以通过这个PageContext对象与JSP页面进行通信。
  2、公共空setParent标签(t) setPageContext方法执行完后,WEB容器接着调用的setParent方法将当前标签的父标签传递给当前标签处理器,如果当前标签没有父标签,则传递给setParent方法的参数值为null。

javaWeb自定义标签用法实例详解