<?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 web-jsptaglibrary_2_0.xsd">
<display-name>自定义标签</display-name>
<tlib-version>2.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>t</short-name>
<uri>/WEB-INF/KmssConfig/dome/domea.tld</uri>
<tag>
<name>formatDate</name>
<tag-class>com.landray.kmss.dome.tag.dome.dome</tag-class>
<body-content>tagdependent</body-content>
<attribute>
<name>num</name>
<required>true</required>
<fragment>true</fragment>
<description>变成一个a标签</description>
</attribute>
</tag>
</taglib>
tid文件详解
<display-name>自定义标签</display-name>
是自己随便定义的没有特殊含义
<tlib-version>2.0</tlib-version>
<jsp-version>2.0</jsp-version>
jsp-version 合格是JSP版本号 也就是一个规范 目前JSP是2.0
tlib-version 标签库版本号 你打2.0就行了 这个也是无所谓的自己随便写的写1.0也行
<short-name>t</short-name>
重要:这里需要和 <%@ taglib prefix="t" uri="/WEB-INF/KmssConfig/dome/domea.tld" %>
你在页面引入标签库里面的 prefix=“t” 相同
<uri>/WEB-INF/KmssConfig/dome/domea.tld</uri>
重要:这里需要和 <%@ taglib prefix="t" uri="/WEB-INF/KmssConfig/dome/domea.tld" %>
你在页面引入标签库里面的 uri="/WEB-INF/KmssConfig/dome/domea.tld 相同
<tag>
<name>formatDate</name>
<tag-class>com.landray.kmss.dome.tag.dome.dome</tag-class>
<body-content>tagdependent</body-content>
</tag>
在tag标签里面定义 标签
<name>formatDate</name>
对应<t:formatDate num=“2019-11-26”></t:formatDate> t:formatDate 是自己取的标签 name名字
<tag-class>com.landray.kmss.dome.tag.dome.dome</tag-class>
对应自定义标签的处理类
<attribute>
<name>num</name>
<required>true</required>
<fragment>true</fragment>
<description>变成一个a标签</description>
</attribute>
定义一个属性 attribute 标签
name 标签对应java类里面的 属性 名字
如下 对应 public String num; 属性 必须要有get和set方法
java代码 标签处理类
`public class dome extends SimpleTagSupport {
public String num;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num =num ;
}
@Override
public void doTag() throws JspException, IOException {
this.getJspContext().getOut().write("<a href='www.baidu'>"+num+"</a>");
}
}
<required>true</required>
<fragment>true</fragment>
required: 这个标签我也没找到啥意思 有两个值 ture 和 false
fragment :标签 true 和 false - 值先传递给容器(false), 直接传给标签处理方法(true)
description :注解解释这个属性的作用
前端页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" uri="/WEB-INF/KmssConfig/dome/domea.tld" %>
<html>
<head>
</head>
<body>
<t:formatDate num="点我"></t:formatDate>
</body>
</html>
效果
补充的一些东西
JSP:传统标签支持它,SimpleTag已经不支持使用JSP