编写带属性的标签

自定义标签可以定义一个或多个属性,这样,在JSP页面中应用自定义标签时就可以设置这些属性的值,通过这些属性为标签处理器传递参数信息,从而提高标签的灵活性和复用性

要想让一个自定义标签具有属性,通常需要完成两个任务:
在标签处理器中编写每个属性对应的setter方法
在TLD文件中描术标签的属性

为自定义标签定义属性时,每个属性都必须按照JavaBean的属性命名方式,在标签处理器中定义属性名对应的setter方法,用来接收JSP页面调用自定义标签时传递进来的属性值。 例如属性url,在标签处理器类中就要定义相应的setUrl(String url)方法。

在标签处理器中定义相应的set方法后,JSP引擎在解析执行开始标签前,也就是调用doStartTag方法前,会调用set属性方法,为标签设置属性。

public class TagDemo5 extends SimpleTagSupport {
	private int count;  //jsp引擎进行默认的八种基本类型的转换 其他的不支持

	public void setCount(int count) {
		this.count = count;
	}

	@Override
	public void doTag() throws JspException, IOException {
		JspFragment jf = this.getJspBody();
		for (int i = 0; i < count; ++i) {
			jf.invoke(null);
		}
	}
}

 <tag>
        <name>demo5</name>
        <tag-class>cn.gbx.web.simpletag.TagDemo5</tag-class>
        <body-content>scriptless</body-content>
        <attribute>
        	 <name>count</name>
        	 <required>true</required>
        	 <rtexprvalue>true</rtexprvalue>
        </attribute>
   
</tag> 


 <body>
  	<sgbx:demo5 count="5">
    	This is my JSP page. <br>
    </sgbx:demo5>
  </body>

  

  

原文地址:https://www.cnblogs.com/E-star/p/3554493.html