Struts 2的标签库(4)——标表单标签与非表单标签

来源:互联网 发布:java邮箱正则表达式 编辑:程序博客网 时间:2024/05/02 00:48
  • 表单标签

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:doubleselectlabel="请选择您喜欢的图书"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:doubleselectlabel="请选择您喜欢的图书"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>


 

  • 非表单标签

 

原创粉丝点击