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ù)字典,因?yàn)橛锌赡芏鄠€頁面
使用同一個下拉框,便于后臺統(tǒng)一維護(hù)。
自定義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表達(dá)式
表示該自定義標(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':'進(jìn)度'}"></s:set>
<s:select list="#selList" listKey="key" listValue="value" name="columnName" headerKey="0" headerValue="--請選擇--"></s:select>
第二種寫法:
<s:select name="columnName" list="{'質(zhì)量','成本','進(jìn)度'}" headerKey="-1" headerValue="--請選擇--" emptyOption=" true" multiple="false"/>
相關(guān)文章
IntelliJ IDEA中ajax開發(fā)實(shí)現(xiàn)分頁查詢示例
這篇文章主要介紹了IntelliJ IDEA中ajax開發(fā)實(shí)現(xiàn)分頁查詢,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03
如何在mapper文件中使用in("str1","str2")
這篇文章主要介紹了如何在mapper文件中使用in("str1","str2"),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法
這篇文章主要介紹了Java并發(fā)編程之ReadWriteLock讀寫鎖的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02
使用java實(shí)現(xiàn)“釘釘微應(yīng)用免登進(jìn)入某H5系統(tǒng)首頁“功能”
這篇文章主要介紹了用java實(shí)現(xiàn)“釘釘微應(yīng)用,免登進(jìn)入某H5系統(tǒng)首頁“功能”,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10
解決idea web項(xiàng)目中out目錄更新不同步問題
這篇文章給大家介紹了idea web項(xiàng)目中out(maven中是target)目錄更新不同步,導(dǎo)致訪問404的問題,本文給大家分享解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-09-09
使用Feign動態(tài)設(shè)置header和原理分析
這篇文章主要介紹了使用Feign動態(tài)設(shè)置header和原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringBoot如何返回頁面的實(shí)現(xiàn)方法
SpringBoot中使用Controller和頁面的結(jié)合能夠很好地實(shí)現(xiàn)用戶的功能及頁面數(shù)據(jù)的傳遞。本文介紹了如何實(shí)現(xiàn)頁面的返回以及這里面所包含的坑,感興趣的可以了解一下2021-07-07

