学习struts2已经很长时间了,一直觉得他的标签很好用,下面就介绍几个选择标签:
下面将用到一个book类,和getBooks的方法,在本文的尾部会提供。
1、<s: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>
预览
2、<s: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、<s: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>
预览
4、<s: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>
预览
<!-- 创建一个复杂的Map对象,key为普通字符串,value为集合 -->
<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>
预览
5、<s: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>
预览
6、<s:optiontransferselect />
<h3>使用s:optiontransferselect来生成可移动列表项的下拉列表框</h3>
<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>
预览
7、<s:radio/>
<h3>使用s:radio生成多个单选框</h3>
<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>
预览
8、<s:checkboxlist/>
<h3>使用s:checkboxlist生成多个复选框</h3>
<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>
预览
books.java
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;
}
}
BookService.java
public class BookService
{
public Book[] getBooks()
{
return new Book[]
{
new Book("疯狂Java讲义","李刚"),
new Book("Struts 2权威指南","李刚"),
new Book("轻量级Java EE企业应用实战","李刚"),
new Book("疯狂Ajax讲义","李刚")
};
}
}