您的位置:首页 > 编程语言 > Java开发

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

2011-11-08 19:55 274 查看
表单标签

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>


非表单标签



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: