源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Struts2 自定义下拉框Tag标签

  • 时间:2022-06-02 10:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Struts2 自定义下拉框Tag标签
自定义标签主要包括三个步骤: 1、编写java类,继承TagSupport类; 2、创建tld文件,影射标签名和标签的java类; 3、jsp页面引入tld。 例子:自定义下拉框标签 如果页面上有下拉选择框,通常最好的解决方法是使用数据字典,因为有可能多个页面 使用同一个下拉框,便于后台统一维护。 [b]自定义Tag类[/b]
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; // 字段索引 ,页面上通过标签属性传回来的值
@SuppressWarnings("unchecked")
@Override
public int doEndTag() throws JspException {
JspWriter jspw = this.pageContext.getOut();
StringBuffer options = new StringBuffer();
/**
* 需要查询数据库 字段索引为SEX的option内容,这里是写死
*/
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;
}
}
[b]定义tld[/b]
<?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><!-- 从数据字典检出一个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表达式 表示该自定义标签的属性值可以使用 ${} 方式动态传值。 使用自定义的标签
<%@ taglib uri="/WEB-TAG/platForm.tld" prefix="PF"%> 
<select>
<PF:OptionDictionary index="SEX"/>
</select>
页面输出: [img]http://files.jb51.net/file_images/article/201602/2016022510252116.jpg[/img] [b]struts2标签-下拉列表的两种写法[/b] [b]第一种写法[/b]
<s:set name="selList" value="# {'1':'质量','2':'成本','3':'进度'}"></s:set>
<s:select list="#selList" listKey="key" listValue="value" name="columnName" headerKey="0" headerValue="--请选择--"></s:select>
[b]第二种写法:[/b]
<s:select name="columnName" list="{'质量','成本','进度'}" headerKey="-1" headerValue="--请选择--" emptyOption=" true" multiple="false"/>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部