编写带属性的标签
自定義標(biāo)簽可以定義一個(gè)或多個(gè)屬性,這樣,在JSP頁面中應(yīng)用自定義標(biāo)簽時(shí)就可以設(shè)置這些屬性的值,通過這些屬性為標(biāo)簽處理器傳遞參數(shù)信息,從而提高標(biāo)簽的靈活性和復(fù)用性
要想讓一個(gè)自定義標(biāo)簽具有屬性,通常需要完成兩個(gè)任務(wù):
在標(biāo)簽處理器中編寫每個(gè)屬性對(duì)應(yīng)的setter方法
在TLD文件中描術(shù)標(biāo)簽的屬性
為自定義標(biāo)簽定義屬性時(shí),每個(gè)屬性都必須按照J(rèn)avaBean的屬性命名方式,在標(biāo)簽處理器中定義屬性名對(duì)應(yīng)的setter方法,用來接收J(rèn)SP頁面調(diào)用自定義標(biāo)簽時(shí)傳遞進(jìn)來的屬性值。 例如屬性u(píng)rl,在標(biāo)簽處理器類中就要定義相應(yīng)的setUrl(String url)方法。
在標(biāo)簽處理器中定義相應(yīng)的set方法后,JSP引擎在解析執(zhí)行開始標(biāo)簽前,也就是調(diào)用doStartTag方法前,會(huì)調(diào)用set屬性方法,為標(biāo)簽設(shè)置屬性。
?
public class TagDemo5 extends SimpleTagSupport {private int count; //jsp引擎進(jìn)行默認(rèn)的八種基本類型的轉(zhuǎn)換 其他的不支持public void setCount(int count) {this.count = count;}@Overridepublic 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>
?
?
?
總結(jié)
- 上一篇: 增加/dev/shm大小
- 下一篇: Lync 2013部署(1)—AD准备