如果一个标签有了属性,则这个标签将是更加灵活而且好使用。下面来列举一下开发带属性的标签的步骤。
首先还是写一个类继承SimpleTagSupport,然后为属性声明一个值,当然,也得为了这个值进行按照JavaBean那样设置Set方法以便服务器进行调用。下面的内容和写正常的标签类就差不多了。当然,在书写TLD标签的时候还是有些不一样的。
package com.bird.web.simpleTag;
import java.io.IOException;
import java.util.Date;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;
/**
* 开发带属性的标签
* @author Bird
*
*/
public class SimpleTagDemo5 extends SimpleTagSupport {
private int count;
private Date date;
public void setDate(Date date) {
this.date = date;
}
public void setCount(int count) {
this.count = count;
}
@SuppressWarnings("deprecation")
@Override
public void doTag() throws JspException, IOException {
JspFragment jf = this.getJspBody();
String time = date.toLocaleString();
this.getJspContext().getOut().write(time);
for(int i = 0; i < count; i++){
jf.invoke(null);
}
}
}
然后是对这个标签进行描述的文件
<tag> <name>demo5</name> <tag-class>com.bird.web.simpleTag.SimpleTagDemo5</tag-class> <body-content>scriptless</body-content> <attribute> <name>count</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>date</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag><required>true</required>这句话的意思是这个标签的属性是否是必须的,设置为True意思为必须
<rtexprvalue>true</rtexprvalue>