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
Struts2 自己定义下拉框标签Tag的更多相关文章
- Vue中el-form标签中的自定义el-select下拉框标签
页面写死el-select下拉框标签: 通过v-for="item in stateArr"绑定,stateArr声明在Vue组件里面的data参数里面代码如下: <el-f ...
- 基于element-ui的多选下拉框和tag标签的二次封装
前言: 今年这大半年我主要负责公司的后台教务管理的开发,这个管理系统目前主要是给公司的内部人员去配置公司的核心项目(例如:熊猫小课)的所有数据,例如课程的配置.课程期数的配置.课程版本的配置.活动的配 ...
- 快速设计ComboBox下拉框
传统软件项目开发时,需要每个控件一个一个的来设计,同时需要在页面功能中对每个控件的属性进行判定处理,尤其是页面风格布局样式需要花去一大半的时间,并且后续要想修改是非常麻烦繁琐,这样就导致设计完成一个功 ...
- Winform 下拉框绑定问题
在Winform中下拉框绑定的时候只能读到text属性值,Id的值不管怎么搞都读取不到,所以就百度找到了一种方式: public void CmdBind() { var data = _logic. ...
- 由于抽签HT For Web ComboBox下拉框组件
传统HTML5的下拉框select仅仅能实现简单的文字下拉列表,而HT for Web通用组件中ComboBox不仅可以实现传统HTML5下拉框效果,并且可以在文本框和下拉列表中加入自己定义的小图标, ...
- selenium处理select标签的下拉框
有时候我们会碰到<select></select>标签的下拉框.直接点击下拉框中的选项不一定可行.Selenium专门提供了Select类来处理下拉框. <select ...
- struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input
原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1 function dosearch() {2 if ($(&q ...
- 通过jquery来实现文本框和下拉框动态添加效果,能根据自己的需求来自定义最多允许添加数量,实用的jquery动态添加文本框特效
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jsp页面上的下拉框案例(Struts2)
<s:select></s:select>包含的属性有:list="" :name="" :value="" ...
随机推荐
- MVC系列学习(十七)-过滤器
本次学习的文件结构如下 1.过滤器的几种表示方式 1.1将过滤器 加到方法上,作用范围为该方法 1.2将过滤器加到当前类上,作用范围为该类的所有方法 1.3添加全局过滤器,作用范围为所有方法 2.Ac ...
- Android互动设计-蓝牙遥控自走车iTank
一.让Android与外部的设备互动 iTank智能型移动平台基本款简介 iTank智能型移动平台是一台履带车,车体上方的控制板有一颗微处理器,我们可以通过它的UART或是I2C接口下达指令来控制iT ...
- JS高级——Function
Function构造函数 可以用来新建函数对象 1.一个参数都不传的情况创建的就是一个空的函数 2.只传一个参数的情况这个参数就是函数体 3.传多个参数的情况,最后一个参数为函数体,前面的参数都是该函 ...
- postgresql用sql语句查询表结构
用到的postgresql系统表 关于postgresql系统表,可以参考PostgreSQL 8.1 中文文档-系统表. pg_class 记录了数据库中的表,索引,序列,视图("关系&q ...
- C# 获得星期几
var temp = System.DateTime.Today.ToString("dddd", new System.Globalization.CultureInfo(&qu ...
- ES6 作用域的问题
- 远程连接阿里云服务器ping不通ip解决方案
搭建了阿里云服务器,发现本地ping不通,查看半天才发现,原来是在阿里云上的安全组少了些东西. 在出入方向上新建一个安全组,就可以搞定了.
- iview中Modal弹窗做form表单验证相关问题
在modal中初始化状态,点击确定弹窗消失. 有的时候表单验证就不希望立刻消失 在iview官网中有自定义页头页脚 可以直接自定义使用 另一种验证写法 serform: { ctCatelogue: ...
- Django - orm字段类型介绍
1.根据类自动创建数据库表 #app.py下的models.py python manage.py makemigrations python manage.py migrate 执行完上述命令后,自 ...
- vue移动端地址三级联动组件(二)
继续上一篇: 子组件css: <style scoped lang="less"> #city { width: 100%; height: 100%; positio ...