Struts2 自定義下拉框Tag標(biāo)簽
自定義標(biāo)簽主要包括三個步驟:
1、編寫java類,繼承TagSupport類;
2、創(chuàng)建tld文件,影射標(biāo)簽名和標(biāo)簽的java類;
3、jsp頁面引入tld。
例子:自定義下拉框標(biāo)簽
如果頁面上有下拉選擇框,通常最好的解決方法是使用數(shù)據(jù)字典,因為有可能多個頁面
使用同一個下拉框,便于后臺統(tǒng)一維護。
自定義Tag類
import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.TagSupport; public class DictionaryOptionTaget extends TagSupport { private static final long serialVersionUID = 1L; private String index; // 字段索引 ,頁面上通過標(biāo)簽屬性傳回來的值 @SuppressWarnings("unchecked") @Override public int doEndTag() throws JspException { JspWriter jspw = this.pageContext.getOut(); StringBuffer options = new StringBuffer(); /** * 需要查詢數(shù)據(jù)庫 字段索引為SEX的option內(nèi)容,這里是寫死 */ if ("SEX".equals(index)) { options.append("<option value=''>-請選擇-</option>"); options.append("<option value='1'>男</option>"); options.append("<option value='0'>女</option>"); } try { jspw.println(options); //輸出 } catch (IOException e) { e.printStackTrace(); } return 0; } @Override public int doStartTag() throws JspException { return 0; } public String getIndex() { return index; } public void setIndex(String index) { this.index = index; } }
定義tld
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>tagSample</short-name> <uri>/hellotag</uri> <tag><!-- 從數(shù)據(jù)字典檢出一個option列表 --> <name>OptionDictionary</name> <tag-class> com.itmyhome.DictionaryOptionTaget </tag-class> <body-content>empty</body-content> <attribute> <name>index</name><!-- 字段索引名 --> <required>true</required><!-- 是否必填 --> <rtexprvalue>false</rtexprvalue><!-- 是否能夠以${}方式傳值 --> </attribute> </tag> </taglib>
需要注意的是:<rtexprvalue>true</rtexprvalue> 時候,可以使用JSP表達式
表示該自定義標(biāo)簽的屬性值可以使用 ${} 方式動態(tài)傳值。
使用自定義的標(biāo)簽
<%@ taglib uri="/WEB-TAG/platForm.tld" prefix="PF"%> <select> <PF:OptionDictionary index="SEX"/> </select>
頁面輸出:
struts2標(biāo)簽-下拉列表的兩種寫法
第一種寫法
<s:set name="selList" value="# {'1':'質(zhì)量','2':'成本','3':'進度'}"></s:set> <s:select list="#selList" listKey="key" listValue="value" name="columnName" headerKey="0" headerValue="--請選擇--"></s:select>
第二種寫法:
<s:select name="columnName" list="{'質(zhì)量','成本','進度'}" headerKey="-1" headerValue="--請選擇--" emptyOption=" true" multiple="false"/>
相關(guān)文章
Spring Boot使用Spring的異步線程池的實現(xiàn)
這篇文章主要介紹了Spring Boot使用Spring的異步線程池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02解決dubbo啟動報服務(wù)注冊失敗Failed?to?register?dubbo
這篇文章主要介紹了解決dubbo啟動報服務(wù)注冊失敗Failed?to?register?dubbo問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Jenkins集成sonarQube實現(xiàn)代碼質(zhì)量檢查過程圖解
這篇文章主要介紹了Jenkins集成sonarQube實現(xiàn)代碼質(zhì)量檢查過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09