Struts2 自定义下拉框Tag标签

 更新时间:2016年02月25日 10:26:08   作者:麦田  
这篇文章主要介绍了Struts2 自定义下拉框Tag标签的相关资料,需要的朋友可以参考下

自定义标签主要包括三个步骤:

1、编写java类,继承TagSupport类;

2、创建tld文件,影射标签名和标签的java类;

3、jsp页面引入tld。

例子:自定义下拉框标签

如果页面上有下拉选择框,通常最好的解决方法是使用数据字典,因为有可能多个页面

使用同一个下拉框,便于后台统一维护。

自定义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; // 字段索引 ,页面上通过标签属性传回来的值
@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;
}
}

定义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><!-- 从数据字典检出一个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>

页面输出:

这里写图片描述

struts2标签-下拉列表的两种写法

第一种写法

<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>

第二种写法:

<s:select name="columnName" list="{'质量','成本','进度'}" headerKey="-1" headerValue="--请选择--" emptyOption=" true" multiple="false"/>

相关文章

  • Java png图片修改像素rgba值的操作

    Java png图片修改像素rgba值的操作

    这篇文章主要介绍了Java png图片修改像素rgba值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Spring Boot使用Spring的异步线程池的实现

    Spring Boot使用Spring的异步线程池的实现

    这篇文章主要介绍了Spring Boot使用Spring的异步线程池的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 解决dubbo启动报服务注册失败Failed to register dubbo

    解决dubbo启动报服务注册失败Failed to register dubbo

    这篇文章主要介绍了解决dubbo启动报服务注册失败Failed to register dubbo问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 详解java安全编码指南之可见性和原子性

    详解java安全编码指南之可见性和原子性

    java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。
    2021-06-06
  • 如何通过Java生成一个随机数

    如何通过Java生成一个随机数

    当我们需要在Java中生成随机数时,可以借助JDK中提供的Random类来实现,通过使用Random类,我们可以轻松地生成各种类型的随机数,下面我们就来看看如何利用Random类生成随机数吧
    2023-09-09
  • Java聊天室之使用Socket实现传递对象

    Java聊天室之使用Socket实现传递对象

    这篇文章主要为大家详细介绍了Java简易聊天室之使用Socket实现传递对象功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
    2022-10-10
  • mybatis实现批量修改-xml方式

    mybatis实现批量修改-xml方式

    这篇文章主要介绍了mybatis实现批量修改-xml方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • idea 模板编程知识小结

    idea 模板编程知识小结

    这篇文章主要介绍了idea 模板编程的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Jenkins集成sonarQube实现代码质量检查过程图解

    Jenkins集成sonarQube实现代码质量检查过程图解

    这篇文章主要介绍了Jenkins集成sonarQube实现代码质量检查过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 一文带你搞懂Maven的继承与聚合

    一文带你搞懂Maven的继承与聚合

    这篇文章主要为大家详细介绍了Maven的继承和聚合以及二者的区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-07-07

最新评论