Struts 2的标签库(4)——标表单标签与非表单标签
2011-11-08 19:55
274 查看
表单标签
Struts的表单标签可以分为两种:form标签本身很单个表单标签。
(Tooltip相关通用属性略)
1)checkboxlist标签
checkboxlist标签可以一次创建多个复选框,用于生成多个<input type="checkbox" ..>标签,根据list属性指定的集合来生成多个复选框。
对于集合中放入javabean实例的情形,则使用了一个<s:bean .../>标签来创建一个javabean实例。
bookservice.java是一个简单的javabean文件
上面封装了一个Book类,是一个简单的javabean。
2)combobox标签
用户可以在文本框中输入内容也可以通过下面的下拉框来选择选项,用以辅助输入。
3)doubleselect标签
doubleselect可以生成一个级联的列表框。通常有如下属性:
在默认的情况下,第一个下拉列表框只支持两项,如果要支持多于两项,我们可以这样解决:
4)optiontransferselect标签
5)select标签
6)radio标签
7)optgroup标签
8)token标签
token标签很简单,只需要在Struts.xml配置pro action就行了。
9)updownselect标签
非表单标签
Struts的表单标签可以分为两种:form标签本身很单个表单标签。
(Tooltip相关通用属性略)
1)checkboxlist标签
checkboxlist标签可以一次创建多个复选框,用于生成多个<input type="checkbox" ..>标签,根据list属性指定的集合来生成多个复选框。
<s:form> <!-- 使用简单集合来生成多个复选框 --> <s:checkboxlist name="a" label="请选择您喜欢的图书" labelposition="top" list="{'Struts 2权威指南' ,'轻量级Java EE企业应用实战' , '疯狂Ajax讲义'}"/> <!-- 使用简单Map对象来生成多个复选框 使用Map对象的key(书名)作为复选框的value,使用Map对象的value(出版时间)作为复选框的标签--> <s:checkboxlist name="b" label="请选择您想选择出版日期" labelposition="top" list="#{'Struts 2权威指南':'2007年10月','轻量级Java EE企业应用实战':'2007月4月','疯狂Ajax讲义':'2007年6月'}" listKey="key" listValue="value"/> <!-- 创建一个JavaBean对象,并将其放入Stack Context中 --> <s:bean name="lee.BookService" id="bs"/> <!-- 使用集合里放多个JavaBean实例来生成多个复选框 使用集合元素里name属性作为复选框的标签 使用集合元素里author属性作为复选框的value--> <s:checkboxlist name="b" label="请选择您喜欢的图书" labelposition="top" list="#bs.books" listKey="author" listValue="name"/> </s:form>
对于集合中放入javabean实例的情形,则使用了一个<s:bean .../>标签来创建一个javabean实例。
bookservice.java是一个简单的javabean文件
public class BookService { public Book[] getBooks() { return new Book[] { new Book("疯狂Java讲义","李刚"), new Book("Struts 2权威指南","李刚"), new Book("轻量级Java EE企业应用实战","李刚"), new Book("疯狂Ajax讲义","李刚") }; } }
上面封装了一个Book类,是一个简单的javabean。
public class Book { //两个普通属性 private String name; private String author; //无参数的构造器 public Book() { } //初始化全部属性的构造器 public Book(String name , String author) { this.name = name; this.author = author; } //name属性的setter和getter方法 public void setName(String name) { this.name = name; } public String getName() { return this.name; } //author属性的setter和getter方法 public void setAuthor(String author) { this.author = author; } public String getAuthor() { return this.author; } }
2)combobox标签
<s:form> <s:combobox label="请选择您喜欢的图书" theme="css_xhtml" labelposition="top" list="{'Struts 2权威指南','轻量级Java EE企业应用实战','疯狂Ajax讲义'}" size="20" maxlength="20" name="book"/> </s:form>
用户可以在文本框中输入内容也可以通过下面的下拉框来选择选项,用以辅助输入。
3)doubleselect标签
doubleselect可以生成一个级联的列表框。通常有如下属性:
<s:form action="x"> <s:doubleselect label="请选择您喜欢的图书" name="author" list="{'李刚', 'David'}" doubleList="top == '李刚' ? {'Struts 2权威指南', '轻量级Java EE企业应用实战','疯狂Ajax讲义'}: {'JavaScript: The Definitive Guide'}" doubleName="book"/> </s:form>
在默认的情况下,第一个下拉列表框只支持两项,如果要支持多于两项,我们可以这样解决:
<s:set name="bs" value="#{'李刚': {'Struts 2权威指南', '轻量级Java EE企业应用实战','疯狂Ajax讲义'}, 'David': {'JavaScript: The Definitive Guide'}, 'Johnson': {'Expert One-on-One J2EE Design and Development'}}"/> <!-- 使用Map对象来生成级联列表框 --> <s:form action="x"> <s:doubleselect label="请选择您喜欢的图书" size="3" name="author" list="#bs.keySet()" doubleList="#bs[top]" doubleSize="3" doubleName="book"/> </s:form>
4)optiontransferselect标签
<s:form> <!-- 使用简单集合对象来生成可移动的下拉列表框 --> <s:optiontransferselect label="请选择你喜欢的图书" name="cnbook" leftTitle="中文图书:" rightTitle="外文图书" list="{'疯狂Java讲义' ,'Struts 2权威指南', '轻量级Java EE企业应用实战','疯狂Ajax讲义'}" 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>
5)select标签
<s:form> <!-- 使用简单集合来生成下拉选择框 --> <s:select name="a" label="请选择您喜欢的图书" labelposition="top" multiple="true" list="{'Struts 2权威指南','轻量级Java EE企业应用实战', 'JavaScript: The Definitive Guide'}"/> <!-- 使用简单Map对象来生成下拉选择框 --> <s:select name="b" label="请选择您想选择出版日期" labelposition="top" list="#{'Struts 2权威指南':'2007年10月', '轻量级Java EE企业应用实战':'2007月4月', '疯狂Ajax讲义':'2007年6月'}" listKey="key" listValue="value"/> <!-- 创建一个JavaBean实例 --> <s:bean name="lee.BookService" id="bs"/> <!-- 使用集合里放多个JavaBean实例来生成下拉选择框 --> <s:select name="b" label="请选择您喜欢的图书" labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/> </s:form>
6)radio标签
<s:form> <!-- 使用简单集合来生成多个单选框 --> <s:radio name="a" label="请选择您喜欢的图书" labelposition="top" list="{'Struts 2权威指南','轻量级Java EE企业应用实战', '疯狂Ajax讲义'}"/> <!-- 使用简单Map对象来生成多个单选框 --> <s:radio name="b" label="请选择您想选择出版日期" labelposition="top" list="#{'Struts 2权威指南':'2007年10月', '轻量级Java EE企业应用实战':'2007月4月' , '疯狂Ajax讲义':'2007年6月'}" listKey="key" listValue="value"/> <!-- 创建一个JavaBean实例 --> <s:bean name="lee.BookService" id="bs"/> <!-- 使用集合里放多个JavaBean实例来生成多个单选框 --> <s:radio name="c" label="请选择您喜欢的图书" labelposition="top" list="#bs.books" listKey="author" listValue="name"/> </s:form>
7)optgroup标签
<s:form> <!-- 直接使用Map为列表框生成选项 --> <s:select label="选择您喜欢的图书" name="book" size="7" list="#{'Struts 2权威指南':'李刚','轻量级Java EE企业应用实战':'李刚', '疯狂Ajax讲义':'李刚'}" 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>
8)token标签
<s:form action="pro"> <!-- 普通表单域 --> <s:textfield name="book" key="book"/> <!-- 用于防刷新的token --> <s:token/> <s:submit value="提交"/> </s:form>
token标签很简单,只需要在Struts.xml配置pro action就行了。
<action name="pro" class="lee.ProAction"> <!-- 使用系统默认的拦截器栈 --> <interceptor-ref name="defaultStack"/> <!-- 使用防刷新的token拦截器 --> <interceptor-ref name="token"/> <!-- 定义重复提交转向的视图,该逻辑视图名必须是invalid.token --> <result name="invalid.token">/refresh.jsp</result> <!-- 如果处理结果返回success,对应/show.jsp视图资源 --> <result name="success">/show.jsp</result> </action>
9)updownselect标签
<s:form> <!-- 使用简单集合来生成可上下移动选项的下拉选择框 --> <s:updownselect name="a" label="请选择您喜欢的图书" labelposition="top" moveUpLabel="向上移动" list="{'Struts 2权威指南' , '轻量级Java EE企业应用实战', '疯狂Ajax讲义'}"/> <!-- 使用简单Map对象来生成可上下移动选项的下拉选择框 且使用emptyOption="true"增加一个空选项--> <s:updownselect name="b" label="请选择您想选择出版日期" labelposition="top" moveDownLabel="向下移动" list="#{'Struts 2权威指南':'2007年10月','轻量级Java EE企业应用实战':'2007月4月' ,'疯狂Ajax讲义':'2007年6月'}" listKey="key" emptyOption="true" listValue="value"/> <s:bean name="lee.BookService" id="bs"/> <!-- 使用集合里放多个JavaBean实例来可上下移动选项的生成下拉选择框 --> <s:updownselect name="c" label="请选择您喜欢的图书的作者" labelposition="top" selectAllLabel="全部选择" multiple="true" list="#bs.books" listKey="author" listValue="name"/> </s:form>
非表单标签
相关文章推荐
- Struts2.0表单标签
- Struts表单无法提交/循环标签无法读取——禁忌单词province
- Struts表单标签带来的表单元素id的变化
- 在jsp中使用struts表单标签时出现找不到路径的问题
- 7.Struts采用EL保持表单数据:改成用struts的html标签保持数据
- Struts2.0 表单中用到select标签提交时出错
- Struts2不用Struts标签显示表单校验提示信息
- Struts(十四):通用标签-form表单
- 利用Struts标签开发jsp页面表单提示java.lang.NullPointerException: Module 'null' not found.
- 《struts---利用struts的标签,实现简单的表单提交及校验》
- struts常用标签(包括特殊的表单标签)使用
- struts1.2中表单标签的应用---(form及text使用)源码解析
- struts_05 各种验证器,ognl表达式,struts2常用标签,防止表单重复提交,jfreeChart插件的运用
- struts2 使用标签防止表单重复提交
- Struts2获取HTML表单元素与Struts表单标签的区别使用-基础篇
- struts-form表单标签
- struts2 防止表单重复提交主要用的到标签是<s: token />
- Struts 2表单标签
- truts2中表单可以不用struts自带的<s:form>标签,直接用html的<form>标签能够提交数据到action
- struts2 三 表单控件标签