Struts2标签库(三)之表单标签
来源:互联网 发布:js文件上传原理 编辑:程序博客网 时间:2024/05/22 12:39
1. checkboxlist标签
checkboxlist标签可以一次创建多个复选框,用于同时生成多个<input type=”checkbox”…/>的HTML标签。它根据list属性指定的集合来生成多个复选框,因此,使用该标签指定一个list属性。如下是常用的两个属性。
(1). listKey:该属性指定集合元素中的某个属性(例如集合元素为Person实例,指定Person实例的namen属性)作为复选框的value。如果集合是Map,则可以使用key或value值指定Map对象的key或value作为复选框的value。
(2). listValue:该属性指定元素中的某个属性(例如集合元素为Person实例,指定Person实例的name属性)作为复选框的标签。如果是Map,则可以使用key或value值指定Map对象的key或value作为复选框的标签。
下现笔者通过一个例子来说明。
1) 首先定义两个类,分别是:BookService.java和Book.java
Ø BookService.java
public class BookService{public Book[] getBooks(){return new Book[]{new Book("English","owen"),new Book("Chinese","willaim"),};}}
Ø Book.java
public class Book{private String name;private String author;// 无参数的构造器public Book(){}// 初始化全部成员变量的构造器public Book(String name , String author){this.name = name;this.author = author;}//省略getter和setter的方法}
2) JSP视图
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:checkboxlist生成多个复选框</title><s:head/></head><body><h3>使用s:checkboxlist生成多个复选框</h3><s:form><!-- 使用简单集合来生成多个复选框 --><s:checkboxlist name="a" label="请选择您喜欢的图书" labelposition="top" list="{'三体', '时间简史', '引力'}"/><!-- 使用简单Map对象来生成多个复选框使用Map对象的key(书名)作为复选框的value,使用Map对象的value(出版时间)作为复选框的标签--><s:checkboxlist name="b" label="请选择您想选择出版日期" labelposition="top"list="#{'三体':'2008年9月','时间简史':'2008月12月','引力':'2014年1月'}"listKey="key"listValue="value"/><!-- 创建一个JavaBean对象,并将其放入Stack Context中 --><s:bean name="com.owen.app.service.BookService" id="bs"/><!-- 使用集合里放多个JavaBean实例来生成多个复选框使用集合元素里name属性作为复选框的标签使用集合元素里author属性作为复选框的value--><s:checkboxlist name="b" label="请选择您喜欢的图书" labelposition="top"list="#bs.books"listKey="author"listValue="name"/></s:form></body></html>
2. radio标签
radio标签的用法与checkboxlist的标签用法几乎是相同的,唯一不同的地方是:checkboxlist生成多个复选框,而radio生成多个单选钮。
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:radio生成多个单选框</title><s:head/></head><body><h3>使用s:radio生成多个单选框</h3><s:form><!-- 使用简单集合来生成多个单选框 --><s:radio name="a" label="请选择您喜欢的图书" labelposition="top"list="{'三体','时间简史','引力'}"/><!-- 使用简单Map对象来生成多个单选框 --><s:radio name="b" label="请选择您想选择出版日期" labelposition="top"list="#{'三体':'2008年9月','时间简史':'2008月12月','引力':'2014年1月'}"listKey="key"listValue="value"/><!-- 创建一个JavaBean实例 --><s:bean name="com.owen.app.service.BookService" id="bs"/><!-- 使用集合里放多个JavaBean实例来生成多个单选框 --><s:radio name="c" label="请选择您喜欢的图书" labelposition="top"list="#bs.books"listKey="author"listValue="name"/></s:form></body></html>
3. select标签
select标签用于生成一个下拉框,使用该标签必须指定list属性,系统会使用list属性指定的集合来生成下拉框的选项。这个list属性指定的集合,既可是普通集合,也可以是Map对象,还可以是其它元素对象的集合。select还有如下几个常见的属性:
(1). listKey:该属性指定集合元素中的某个属性作为复选框的value。
(2). listValue:指定集合元素中的某个属性作为复选框的标签。
(3). multiple:设置该列表框是否允许多选。
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>使用s:select生成下拉选择框</title><s:head/></head><body><h3>使用s:select生成下拉选择框</h3><s:form><!-- 使用简单集合来生成下拉选择框 --><s:select name="a" label="请选择您喜欢的图书" labelposition="top" multiple="true" list="{'三体','时间简史','引力'}"/><!-- 使用简单Map对象来生成下拉选择框 --><s:select name="b" label="请选择您想选择出版日期" labelposition="top" list="#'三体':'2008年9月','时间简史':'2008月12月','引力':'2014年1月'}"listKey="key"listValue="value"/><!-- 创建一个JavaBean实例 --><s:bean name="com.owen.app.service.BookService" id="bs"/><!-- 使用集合里放多个JavaBean实例来生成下拉选择框 --><s:select name="c" label="请选择您喜欢的图书" labelposition="top"multiple="true"list="#bs.books"listKey="author"listValue="name"/></s:form></body></html>
4. optgroup标签
optgroup标签用于生成一个下拉列表的选项组,因此,该标签必须放在<s:select…/>标签中使用。一个下拉框列表中可以包含多个选项,因此可以在一个<s:select../>标签中使用多个<s:optgroup…/>标签。
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:optgroup生成下拉选择框的选项组</title><s:head/></head><body><h3>使用s:optgroup生成下拉选择框的选项组</h3><s:form><!-- 直接使用Map为列表框生成选项 --><s:select label="选择您喜欢的图书" name="book" size="7"list="#'三体':'2008年9月','时间简史':'2008月12月','引力':'2014年1月'}"listKey="value"listValue="key"><!-- 使用Map对象来生成选择框的选项组 --><s:optgroup label="Rod Johnson"list="#{'Expert One-on-One J2EE Design and Development':'Johnson'}"listKey="value"listValue="key"/><s:optgroup label="David Flanagan"list="#{'JavaScript: The Definitive Guide':'David'}"listKey="value"listValue="key"/></s:select></s:form></body></html>
5. updownselect标签
updownselect标签的用法非常类似于select标签的用法,区别是该标签生成的列表可以上下移动选项。因此使用该标签时,一样可以指定list、listKey和listValue等属性,这些属性的作用与使用select标签时指定的list、listKey和listVlaue等属性完全相同。updownselect标签支持如下几个属性:
(1). allowMoveUp:是否显示“上移”按钮,默认是true.
(2). allowMoveDown:是否显示“下移”按钮,默认是true.
(3). allowSelectAll:是否显示“全选”按钮,默认是true。
(4). moveUpLabel:设置“上移”按钮上的文本,默认是true.
(5). moveDownLabel:设置“下移”按钮的文本,默认是true。
(6). selectAllLabel:设置“全选”按钮上的文本,默认是*符号。
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:updownselect生成可上下移动选项的下拉选择框</title><s:head/></head><body><h3>使用s:updownselect生成可上下移动选项的下拉选择框</h3><s:form><!-- 使用简单集合来生成可上下移动选项的下拉选择框 --><s:updownselect name="a" label="请选择您喜欢的图书"labelposition="top"moveUpLabel="向上移动"list="{'三体' , '时间简史', '引力'}"/><!-- 使用简单Map对象来生成可上下移动选项的下拉选择框 且使用emptyOption="true"增加一个空选项--><s:updownselect name="b" label="请选择您想选择出版日期"labelposition="top"moveDownLabel="向下移动"list="#{'三体':'2008年9月','时间简史':'2008月12月','引力':'2014年1月'}"listKey="key"emptyOption="true"listValue="value"/><s:bean name="com.owen.app.service.BookService" id="bs"/><!-- 使用集合里放多个JavaBean实例来可上下移动选项的生成下拉选择框 --><s:updownselect name="c" label="请选择您喜欢的图书的作者"labelposition="top"selectAllLabel="全部选择" multiple="true"list="#bs.books"listKey="author"listValue="name"/></s:form></body></html>
6. doubleselect标签
double标签会生成一个级联列表框,当选择第一个下拉框列表时,第二个列表框的内容随之改变。常见的如下。
(1). list:指定用于输出第一个下拉框列表中选项的集合。
(2). listKey:指定集合元素中某个属性作为第一个下拉列表的value。
(3). listValue:指定集合元素中的某个属性作为复选框的标签。
(4). doubleList:指定用于输出第二个下拉框中选项的集合。
(5). doubleListKey:指定集合元素中某个属性作为第二个下拉列表框的value.
(6). doubleListValue:指定集合元素中某个属性作为第二个下拉框的标签。
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:doubleselect生成级联下拉列表框</title><s:head/></head><body><h3>使用s:doubleselect生成级联下拉列表框</h3><s:form action="x"><s:doubleselectlabel="请选择您喜欢的图书"name="author" list="{'owen', 'David'}"doubleList="top == 'owen' ? {'轻量级Java EE企业应用实战','三体','时间简史'}:{'JavaScript: The Definitive Guide'}" doubleName="book"/></s:form></body></html>
如果是Map,则例子如下:
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %><%@taglib prefix="s" uri="/struts-tags"%><!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>使用s:doubleselect生成级联下拉列表框</title><s:head/></head><body><h3>使用s:doubleselect生成级联下拉列表框</h3><!-- 创建一个复杂的Map对象,key为普通字符串,value为集合 --><s:set name="bs" value="#{'owen': {'三体', ' java虚拟机','架构'},'David': {'JavaScript: The Definitive Guide'},'Johnson': {'Expert One-on-One J2EE Design and Development'}}"/><!-- 使用Map对象来生成级联列表框 --><s:form action="x"><s:doubleselectlabel="请选择您喜欢的图书"size="3"name="author" list="#bs.keySet()"doubleList="#bs[top]" doubleSize="3"doubleName="book"/></s:form></body></html>
7. optiontransferselect标签
optiontransferselect标签会生成两个列表框,并生成系列的按钮用于控制各选项在两个下拉框列表之间移动、升级等。当提交该列表表单时,两个列表选择框对应的请求参数都会被提交。
<!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>使用s:optiontransferselect来生成可移动列表项的下拉列表框</title><s:head/></head><body><h3>使用s:optiontransferselect来生成可移动列表项的下拉列表框</h3><s:form><!-- 使用简单集合对象来生成可移动的下拉列表框 --> <s:optiontransferselect label="请选择你喜欢的图书"name="cnbook" leftTitle="中文图书:"rightTitle="外文图书"list="{'时间简史' ,'三体 ','java虚拟机'}" multiple="true"addToLeftLabel="向左移动"selectAllLabel="全部选择"addAllToRightLabel="全部右移"headerKey="cnKey"headerValue="--- 选择中文图书 ---"emptyOption="true"doubleList="{'Expert One-on-One J2EE Design and Development','JavaScript: The Definitive Guide'}" doubleName="enBook"doubleHeaderKey="enKey"doubleHeaderValue="--- 选择外文图书 ---" doubleEmptyOption="true"doubleMultiple="true"/></s:form></body></html>
8. token标签
这是一个用于防止重复提交表单的标签,token标签能阻止重复提交表单的问题(避免在刷新页面的重复提交)。如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器或TokenSessionInterception拦截器。然后在JSP页面的表单中添加<s:token/>.
注意:如果表单没有使用<s:token/>标签,则不要使用token的拦截器,不然提交会出错。
<?xml version="1.0" encoding="GBK"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><constant name="struts.i18n.encoding" value="GBK"/><package name="lee" extends="struts-default"><!-- 定义名为pro的Action,其实现类为ProAction --><action name="pro" class="com.owen.app.action.ProAction"><!-- 使用系统默认的拦截器栈 --><interceptor-ref name="defaultStack"/><!-- 使用防刷新的token拦截器 --><interceptor-ref name="token"/><!-- 定义重复提交转向的视图,该逻辑视图名必须是invalid.token --><result name="invalid.token">/WEB-INF/content/refresh.jsp</result><!-- 如果处理结果返回success,对应/show.jsp视图资源 --><result>/WEB-INF/content/show.jsp</result></action><action name="*"><result>/WEB-INF/content/{1}.jsp</result></action></package></struts>
- Struts2标签库(三)之表单标签
- Struts2.0标签库(三)表单标签
- struts2常用标签库之表单标签
- Struts2标签库(四)之非表单标签
- struts2 三 表单控件标签
- (Struts2学习篇)Struts2标签库(表单标签)
- struts2常用标签库之非表单标签
- struts2 checkboxlist标签(表单标签)
- struts2 doubleselect标签(表单标签)
- struts2 select 标签(表单标签)
- Struts2(八)---通用标签&表单标签
- struts2学习笔记之十三(表单标签和非表单标签)
- Struts2中UI标签之表单标签介绍
- Struts2中UI标签之表单标签的一个例子
- Struts2中UI标签之非表单标签
- Struts2中UI标签之表单标签介绍
- struts2表单标签
- struts2表单标签
- 各种数据库JDBC 连接方式
- Java的注解机制——Spring自动装配的实现原理
- 词袋模型基本原理(Bag of words)
- 斜杠/和反斜杠\的区别
- Struts2 简单数据验证
- Struts2标签库(三)之表单标签
- 虚幻UE4碰撞系统
- android 网络框架性能优化分析
- 集合简单总结
- CSS中display/float/position属性值的相互影响
- RecyclerView的使用(2)之多Item布局的加载
- Spark 基础(一)
- C++基本概念——构造函数
- 【HDU5630】Rikka with Chess(模拟)