完成一个动态的加法操作:----DynamicAddTag.java
package org.lxh.tagdemo ;
import java.io.* ;
import java.util.* ;
import javax.servlet.jsp.* ;
import javax.servlet.jsp.tagext.* ;
public class DynamicAddTag extends SimpleTagSupport implements DynamicAttributes {
private Map<String,Float> num = new HashMap<String,Float>() ;
public void doTag()
throws JspException,
IOException{
Float sum = 0.0f ;
Iterator<Map.Entry<String,Float>> iter = this.num.entrySet().iterator() ;
while(iter.hasNext()){
Map.Entry<String,Float> value = iter.next() ;
sum += value.getValue() ; // 取出每一个内容
}
super.getJspContext().getOut().write(sum + "") ;
}
public void setDynamicAttribute(String uri,
String localName,
Object value)
throws JspException{
// 取出设置的每一个动态属性,都保存在Map集合里
num.put(localName,Float.parseFloat(value.toString())) ;
}
}
编写标签描述文件,增加动态属性设置----修改mldntag.tld
<tag>
<name>add</name>
<tag-class>org.lxh.tagdemo.DynamicAddTag</tag-class>
<body-content>empty</body-content>
<dynamic-attributes>true</dynamic-attributes>
</tag>
调用标签,设置动态属性----addtag.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ taglib prefix="mytag" uri="mldn"%>
<html>
<head><title></title></head>
<body>
<h2>计算结果:
<mytag:add num1="11.2" num2="12.3" num3="13.5"/>
</h2>
</body>
</html>