zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SpringSecurity实现权限管理和页面导航栏动态实现
    “菜鸟”程序员和“大神”程序员差距在哪里
    错误提示:Dynamic Performance Tables not accessible, Automatic Statistics Disabled for this session You can disable statistics in the preference menu,or obtanin select priviliges on the v$session,v$sess
    oracle的知识点总结
    linuxVim命令合集
    Spring Security 整合freemaker 实现简单登录和角色控制
    oracle 创建的表为什么在table里没有,但是可以查出来
    头发对我来说已经不重要了!
    IntelliJ Idea 常用快捷键列表
    Firefox 笔记
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7115579.html
Copyright © 2011-2022 走看看