本文实例讲述了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> >之前执行效果如下:
自定义标签改进,将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 %比; >之前备注:
JSP引擎将遇到自定义标签时,首先创建标签处理器类的实例对象,然后按照JSP规范定义的通信规则依次调用它的方法。
1、公共空setPageContext (PageContext pc), JSP引擎实例化标签处理器后,将调用setPageContext方法将JSP页面的PageContext对象传递给标签处理器,标签处理器以后可以通过这个PageContext对象与JSP页面进行通信。
2、公共空setParent标签(t) setPageContext方法执行完后,WEB容器接着调用的setParent方法将当前标签的父标签传递给当前标签处理器,如果当前标签没有父标签,则传递给setParent方法的参数值为null。javaWeb自定义标签用法实例详解