首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

OGNL的运用-表单标签

2012-09-28 
OGNL的使用----表单标签Struts2提供了很多表单标签,大部分表单标签和HTML表单标签之间有一一对应的关系,这

OGNL的使用----表单标签

Struts2提供了很多表单标签,大部分表单标签和HTML表单标签之间有一一对应的关系,这里只介绍一些比较特殊的表单标签。对于表单标签而言,name和value存在一个特殊的关系,每个表单元素会被映射成Action属性。

?

使用Struts2标签必须先导入标签库,在页面使用如下代码导入Struts2标签:
<%@taglib prefix="s" uri="/struts-tags"%>

?


textfield标签:
<s:textfield name="person.firstName"/>

?

?

checkboxlist标签:

使用简单集合来生成多个复选框
<s:checkboxlist name="a" lable="请选择你喜欢的图书" labelposition="top" list="{'Java编程思想','J2EE企业应用实战'}"/>

?

使用简单Map对象来生成多个复选框
<s:checkboxlist name="b" label="请选择你喜欢的图书" labelposition="top" list="{'Java编程思想':'2012年8月','J2EE企业应用实战':'2012年9月'}" listKey="key" listValue="value"/>

?

使用创建的放有多个对象的JavaBean对象来生成多个复选框
<s:bean name="com.service.BookService" id="bs"/>
<s:checkboxlist name="b" label="请选择你喜欢的图书" labelposition="top" list="#bs" listKey="author" listValue="name"/>


public class BookService{
??? public Book[]getBooks(){
???????? return new Book[]{
??????????? new Book("Java编程思想","李刚");
??????????? newBook("J2EE企业应用实战","李刚");
???????? };
??? }
}

?

public class Book{
? private String name;
? private String author;
?
? public Book(String name,String author){
???? this.name=name;
???? this.author=author;
? }
? //getter&setter...
}

?

?

?

select标签:

?

使用集合来生成下拉选择框


<s:select name="a" lable="请选择你喜欢的图书" lableposition="top" multiple="true" list="{'Java编程思想','J2EE企业应用实战'}" />


使用简单Map对象来生成下拉选择框


<s:select name="b" lable="请选择你喜欢的图书" lableposition="top" multiple="true" list="#{'Java编程思想':'2012年8月','J2EE企业应用实战':'2012年9月'}" listKey="key" listValue="value"/>


属性说明:
multiple:设置该列表框是否允许多选
listKey:指定集合中的某个元素作为复选框的value
listValue:指定集合中的某个元素作为复选框的标签

?

?

使用集合里放多个JavaBean实例来生成下拉选择框


<s:bean name="com.service.BookService" id="bs"/>
<s:select name="b" lable="请选择你喜欢的图书" labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

?

?

?

radio标签:


使用集合来生成单选框


<s:radio name="a" lable="请选择你喜欢的图书" lableposition="top" multiple="true" list="{'Java编程思想','J2EE企业应用实战'}" />


使用简单Map对象来生成单选框


<s:radio name="b" lable="请选择你喜欢的图书" lableposition="top" multiple="true" list="#{'Java编程思想':'2012年8月','J2EE企业应用实战':'2012年9月'}" listKey="key" listValue="value"/>


使用集合里放多个JavaBean实例来生成单选框


<s:bean name="com.service.BookService" id="bs"/>
<s:radio name="c" lable="请选择你喜欢的图书" labelposition="top" multiple="true" list="#bs.books" listKey="author" listValue="name"/>

?

?

?

optgroup标签:
<s:optgroup lable="请选择你喜欢的图书" list="#{'Java编程思想':'2012年8月'}" listKey="value" listValue="key"/>
<s:optgroup lable="请选择你喜欢的图书" list="#{'J2EE企业应用实战':'2012年9月'}" listKey="value" listValue="key"/>

?

?

?

token标签:
这是一个防止多次提交表单的标签,如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器或TokenSessionStoreInterceptor拦截器。
token的实现原理:在表单中增加一个隐藏域,每次加载页面时,该隐藏域的值都不同,而TokenInterceptor则拦截所有的用户请求,如果两次请求时该token对应隐藏域的值相同,则阻止表

单提交。
<s:token />

?

?

?

doubleselect标签:


doubleselect标签会生成一个级联列表框,当选择第一个下拉列表框时,第二个下拉列表框的内容会随之而改变。
<s:doubleselect lable="请选择你喜欢的图书"
??????????????? name="author"
??????????????? list="{'李刚','David'}"
??????????????? doubleList="top=='李刚'?{'Struts2权威指南','轻量级Java EE企业应用实战'}:{'Java编程思想','23种设计模式'}"/>

?

使用Map对象来创建doubleselect
<s:set name="bs" value="#{'李刚':{'Struts2权威指南','轻量级Java EE企业应用实战'},'David':{'Java编程思想','23种设计模式'}}"/>
<s:doubleselect lable="请选择你喜欢的图书"
??????????????? size="3"
??????????????? name="author"
??????????????? list="#bs[top]"
??????????????? doubleSize="3"
??????????????? doubleName="book"/>

?

?

optiontransferselect标签:


optiontransferselect标签会生成两个列表选择框,并生成系列的按钮来控制各选项在两个下拉列表之间的移动、升降。当提交表单时,两个列表选择框对应的请求参数都会被提交。

<s:optiontransferselect
??????????????? lable="请选择你喜欢的图书"
??????????????? name="cnbook"
??????????????? leftTitle="中文图书"
??????????????? rightTitle="外文图书"
??????????????? list="{'Struts2权威指南','Java编程思想'}"
??????????????? multiple="true"
??????????????? addToLeftLable="向左移动"
??????????????? selectAllLable="全部选择"
??????????????? addAllToRightLable="全部右移"
??????????????? 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"
/>

?

属性说明:

list:设置第一个下拉列表选择框的集合

listKey:设置第一个下拉列表选择框的value属性

listValue:设置第一下下拉列表选择框的lable属性

doubleList:设置第二个下拉列表选择框的集合

doubleListKey:设置第二个下拉列表选择框的value属性

doubleListValue:设置第二个下拉列表选择框的lable属性

doubleMultiple:设置第二个下拉列表选择框是否允许多选

?

?

?

updownselect标签:


使用简单集合来生成可上下移动选项的下拉选择框
<s:updownselect name="a" label="请选择你喜欢的图书"
??????????????? lableposition="top"
??????????????? moveUpLable="向上移动"
??????????????? list="{'Struts2权威指南','Java编程思想'}"/>


使用简单Map对象来生成可上下移动选项的下拉选择框
<s:updownselect name="b" lable="请选择你喜欢的图书"
??????????????? lableposition="top"
??????????????? moveDownLable="向下移动"
??????????????? list="{'Struts2权威指南':'2012年8月','Java编程思想':'2012年9月'}"
??????????????? listKey="key"
??????????????? listValue="value"
??????????????? emptyOption="true"
/>
??????????????
使用集合里放多个JavaBean实例来生成可上下移动选项的下拉选择框
<s:bean name="com.service.BookService" id="bs"/>
<s:updownselect name="c" lable="请选择你喜欢的图书"
??????????????? lableposition="top"
??????????????? selectAllLable="全部选择"
??????????????? list="#bs.books"
??????????????? listKey="author"
??????????????? listValue="name"
??????????????? multiple="true"
/>

?

热点排行