============java文件 ,包名org.rain.tag
package org.rain.tag;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.DynamicAttributes;
import javax.servlet.jsp.tagext.SimpleTagSupport;
public class SmallRainDynamicTAG extends SimpleTagSupport implements DynamicAttributes {
private Map<String, Object> smallRianDynamicBeans = new HashMap<String, Object>();
@Override
public void setDynamicAttribute(String smallRainURI, String smallRainTAGName, Object smallRainTAGNameValue)
throws JspException {
smallRianDynamicBeans.put(smallRainTAGName, smallRainTAGNameValue);
}
@Override
public void doTag() throws JspException, IOException {
StringBuilder smallRainTagOut = new StringBuilder();
smallRianDynamicBeans.forEach((tagName, tagValue) ->
smallRainTagOut.append("<b>属性名:</b>" + tagName + " <b>属性值:</b>"+tagValue)
.append("<br>"));
getJspContext().getOut().print(smallRainTagOut.toString());
}
}
=====================TLD文件,放在WEB-INF\tld\rain.tld,名称rain.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
version="2.1">
<tlib-version>1.0</tlib-version>
<short-name>rain</short-name>
<tag>
<name>SmallRainDynamicTAG</name>
<tag-class>org.rain.tag.SmallRainDynamicTAG</tag-class>
<body-content>empty</body-content>
<dynamic-attributes>true</dynamic-attributes>
</tag>
</taglib>
=========jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" %>
<%@ taglib uri="/web-rain/welcome.tld" prefix="rain"%>
<html>
<body>
<head>
<title>动态自定义标签属性页面</title>
</head>
<h3> 晓雨 动态自定义标签属性页面</h3> 可以更改JSP标签属性和值;<br>
例如修改标签 《rain:SmallRainDynamicTAG smallRainSchool="大学" smallRainHome="地址" 》<br>
添加标签属性和值 smallRainHomeSelf="中国"
<br>
<br>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<rain:SmallRainDynamicTAG smallRainSchool="大学" smallRainHome="地址"/>
</table>
</body>
</html>