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>

页面输出:

源码:download

作者:itmyhome

时间: 2024-10-19 06:27:50

Struts2 自定义下拉框标签Tag的相关文章

基于element-ui的多选下拉框和tag标签的二次封装

前言: 今年这大半年我主要负责公司的后台教务管理的开发,这个管理系统目前主要是给公司的内部人员去配置公司的核心项目(例如:熊猫小课)的所有数据,例如课程的配置.课程期数的配置.课程版本的配置.活动的配置.课程安排表.管理员的权限配置.物流的管理.退款管理.学员咨询管理等功能.因为一开始这个教务系统的原型设计就是基于element-ui 1.4.13的版本设计的,前端一开始为了和设计稿给的原型保持一致,项目中也是基于element-ui 1.4.13在开发,现在这个版本官方已经停止维护了,我们曾经

elect美化自定义下拉框样式

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>张力仪</title></he

CSS3自定义下拉框

原文:CSS3自定义下拉框 源代码下载地址:http://www.zuidaima.com/share/1550463655152640.htm 源代码截图:

android中自定义下拉框(转)

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在编辑框的下面,然后又很多选项的下拉框,可是我在网上找了一下,没有这种下拉框额,就自己写了一个,看效果图先: ,这个是资料填写的一部分界面,三个下拉框,选择故乡所在地: 点击之后弹出下拉框,选择下面的选项: 三个下拉框时关联的,第一个决定了第二数据内容,第二个决定了第三个数据内容,如果三个全部选好之后

自定义下拉框样式,利用prototype制作

<script type="text/javascript" src="js/jquery-1.7.2.min.js" ></script> <script type="text/javascript"> // function createDropdown(ele){ this.dropdown=ele; this.val=''; this.index=-1;//默认值时-1 this.palceholder

Android 自定义下拉框的实现 Spinner

下拉框布局  a_spinner_checked_text.xml <?xml version="1.0" encoding="utf-8"?><CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" android:layout_width="

点击自定义下拉框以外的区域关闭下拉框

1.写一个下拉框 html部分: <div class="pull-left service-type mt-36"> <div id="currentService">第一<img style="margin-left: 5px" src="arrow.png"/></div> <ul class="service-option hidden">

【4】自定义下拉框

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

自定义下拉框

1.代码布局 <div class="select-box"> <span class="select-value" id ="patrolId" >请选择</span> <a class="select-img select-close"></a> <div class="option fence"> <a>请选择<