创建自定义标签的流程:
* 定义标签的样式,标签要完成的功能
<xxxx:date/> --转化为系统的当前日期
* 编写标签处理类
public class DateTag implements SimpleTag
* 定义tld文件(标签的配置文件)
<!-- 标签库的描述文件 -->
<description>mytag 1.0 core library</description>
<!-- 标签库的概述 -->
<display-name>mytag core</display-name>
<!-- 标签库的版本 -->
<tlib-version>1.0</tlib-version>
<!-- 在jsp页面时标签时,建议使用的前缀名 -->
<short-name>itcast</short-name>
<!-- 标签库名称的唯一标识,不同标签库,名称必须不一致 ,也就是每个tld文件中该名称唯一-->
<uri>http://www.xxxx/jsp/mytag/core</uri>
<!-- 配置显示日期的标签 xxxxt:date-->
<tag>
<!-- 标签的名称 是唯一-->
<name>date</name>
<!-- 标签处理类的完整路径 -->
<tag-class>com.itcast.tag.DateTag</tag-class>
<!--定义标签体的类型,empty表示没有标签体 -->
<body-content>empty</body-content>
</tag>
* 在web.xml文件中注册tld文件(servler2.4 jsp2.0规范及以后的版本不用再web.xml文件中注册tld文件)
<!-- 在web.xml文件中配置标签库文件 -->
<jsp-config>
<taglib>
<!-- 在jsp页面中taglib指令中uri的值 -->
<taglib-uri>/WEB-INF/mytag.tld</taglib-uri>
<!-- 标签的完整路径 /表示从根路径开始查找-->
<taglib-location>/WEB-INF/tld/mytag.tld</taglib-location>
</taglib>
</jsp-config>
* 在jsp中使用标签
* 导入标签库
<!--
导入标签库
uri 属性定义的是标签库的tl文件,通常是指向的一个路径的文件
* 为web.xml文件中taglib-uri的值
* tld文件中uri标签的值 http://www.xxxx/jsp/mytag/core
prefix属性: 给uri起的引用名称
-->
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="itcast" %>
* 使用标签
<xxxx:date/>
标签的执行流程:
* 浏览器请求jsp页面
* jsp引擎执行jsp页面,执行中碰到标签指令itcast:date
* 根据itcast <%@ taglib uri="/WEB-INF/mytag.tld" prefix="itcast" %>
找到tld文件.
* 根据date 在tld文件中查找tag标签中 <name>date</name> 等于date的name标签
* 根据name标签找到<tag-class>com.xxxx.tag.DateTag</tag-class>对应的标签处理类
* 执行标签处理类
* 按照执行SimpleTag接口的标签处理类的声明周期执行.
* 执行doTag()方法时,在jsp页面输出信息在 <xxxx:date/>所在的位置输出