版权声明:本文转自http://blog.csdn.net/zxl315/archive/2008/09/05/2886456.aspx
jsp 中使用 Struts2 的标志,先要指明标志的引入。通过 jsp 的代码的顶部加入以下的代码:
<%@ taglib prefix = "s" uri = "/struts-tags" %>
If elseif else
描述:
执行基本的条件流转。
参数:
名称 | 必需 | 默认 | 类型 | 描述 | 备注 |
test | 是 |
| boolean | 决定标志里的内容是否显示的表达式 | else 标志没有这个参数 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 UI 和表单中为 HTML 的 id 属性 |
|
例子:
< s:set name = "age" value = "61" />
< s:if test = "${age > 60} ">
老年人
</ s:if >
< s:elseif test = "${age > 35} ">
中年人
</ s:elseif >
< s:elseif test = "${age > 15} " id = "wawa" >
青年人
</ s:elseif >
< s:else >
少年
</ s:else >
< s:set name = "name" value = "<%= "'" + request.getParameter( "name" )+ "'" %> "/>
<%
System.out.println(request.getParameter( "name" ));
%>
< s:if test = "#name=='zhaosoft'" >
zhaosoft here
</ s:if >
< s:elseif test = "#name=='zxl'" >
zxl here
</ s:elseif >
< s:else >
other is here
</ s:else >
Iterator (迭代)
描述:用于遍历集合( java.util.Collection )或枚举值 (java.util.iterator)
参数
名称 | 必需 | 默认 | 类型 | 描述 |
status | 否 |
| String | 如果设置此参数,一个 IteratorStatus 的实例将会压入每一个遍历的堆栈 |
value | 否 |
| Object/String | 要遍历的可枚举的 (iteratable) 数据源,或者将放入的新列表 (List) 的对想 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
I18n (国际化操作)
描述:
加载资源包到值堆栈。它可以允许 text 标志访问任何资源包的信息。而不只当前的 action 相关联的资源包。
名称 | 必需 | 默认 | 类型 | 描述 |
name | 是 |
| Object/String | 资源包的类路径 ( 如 com.xxxx.resources.AppMsg) |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
Include
描述:包含一个 servlet 的输出 (servlet 或 jsp 的页面 )
名称 | 必需 | 默认 | 类型 | 描述 |
value | 时 |
| String | 要包含的 jsp 页面或 servlet |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
param
描述:属性是可选的,如果提供,会调用 Component 的方法, addParameter(String,Object), 如果不提供,则外层嵌套标签必须实现 UnnamedParametric 接口。
Value 的提供有两种方式,通过 value 属性或者标签中间的 text ,不同之处:
<s:param name="name">zhaosoft</s:param>
参数会以 String 的格式放入 statck
<s:param name="name" value="zhaosoft"/>
该值会以 java.lang.Object 的格式放入 statck
名称 | 必需 | 默认 | 类型 | 描述 |
name | 否 |
| String | 参数名 |
value | 时 |
| String | value 表达式 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
set
描述: set 标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。其在两种情况下非常有用:复杂的表达式很耗时(性能提升)或者很难理解(代码的可读性提高)
参数:
名称 | 必需 | 默认 | 类型 | 描述 |
name | 是 |
| String | 变量名字 |
scope | 否 |
| String | 变量作用域,可以为 application,session,request,page,action |
value | 否 |
| Object/String | 将会赋给变量的值 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
Text
描述:支持国际化信息的标签。国际化信息必须放在一个和当前 action 同名的 resource bundle 中,如果没有找到相应 message,tag body 将被当作默认的 message ,如果没有 tag body , message 的 name 会被作为默认 message.
名称 | 必需 | 默认 | 类型 | 描述 |
name | 是 |
| String | 资源属性的名字 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
url
描述:该标签用于创建 url ,可以通过 ”param” 标签提供 request 参数。
当 includeParams 的值是 all 或 get , param 标签中定义的参数将有优先权,也就是说其会覆盖其他同名参数的值。
UI 标志
单行文本框
Textfield 标签输出一个 HTML 单行文本输入控件,等价于 HTML 代码 <input type=”text”>
名称 | 必需 | 默认 | 类型 | 描述 |
maxlength | 否 | 无 | Integer | 文本输入控件可以输入字符的最大长度 |
readonly | 否 | false | Boolean | 当该属性为 true 时,不能输入 |
size | 否 | 无 | Integer | 指定可视尺寸 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
例子:
<s:form action="register" method="post">
<s:textfield name="username" label=" 用户名 "></s:textfield>
</s:form>
文本框区
Textarea 标签输出一个 HTML 多行文本输入控件,等价于 HTML 代码: <textarea />
名称 | 必需 | 默认 | 类型 | 描述 |
cols | 否 | 无 | Integer | 列数 |
rows | 否 | 无 | Integer | 行数 |
readonly | 否 | false | Boolean | 当该属性为 true 时,不能输入 |
wrap | 否 | false | Boolean | 指定多行文本输入控件是否应该换行 |
id | 否 |
| Object/String | 用来标识元素的 id 。在 ui 和表单中为 HTML 的 id 属性 |
例子:
< s:textarea name = "personal" cols = "10" rows = "5" label = " 个人简历 " ></ s:textarea >
下拉列表
s:select 标签输出一个下拉列表框,相当于 HTML 代码中的 <select/>
名称 | 必需 | 默认 | 类型 | 描述 |
list | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 list 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容 |
listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value |
listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 |
headerKey | 否 | 无 | String | 设置当用户选择了 header 选项时,提交的的 value ,如果使用该属性,不能为该属性设置空值 |
headerValue | 否 | 无 | String | 显示在页面中 header 选项内容 |
emptyOption | 否 | false | Boolean | 是否在 header 选项后面添加一个空选项 |
multiple | 否 | false | Boolean | 是否多选 |
size | 否 | 无 | Integer | 显示的选项个数 |
例子:
%@ page contentType = "text/html;charset=GBK" %>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
< h3 > 使用 name 和 list 属性, list 属性的值是一个列表 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "{' 高中 ',' 大学 ',' 硕士 ',' 博士 '}" />
</ s:form >
< h3 > 使用 name 和 list 属性, list 属性的值是一个 Map </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "#{1:' 高中 ',2:' 大学 ',3:' 硕士 ',4:' 博士 '} "/>
</ s:form >
< h3 > 使用 headerKey 和 headerValue 属性设置 header 选项 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "{' 高中 ',' 大学 ',' 硕士 ',' 博士 '}"
headerKey = "-1" headerValue = " 请选择您的学历 " />
</ s:form >
< h3 > 使用 emptyOption 属性在 header 选项后添加一个空的选项 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "{' 高中 ',' 大学 ',' 硕士 ',' 博士 '}"
headerKey = "-1" headerValue = " 请选择您的学历 "
emptyOption = "true" />
</ s:form >
< h3 > 使用 multiple 属性设置多选 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "{' 高中 ',' 大学 ',' 硕士 ',' 博士 '}"
headerKey = "-1" headerValue = " 请选择您的学历 "
emptyOption = "true"
multiple = "true" />
</ s:form >
< h3 > 使用 size 属性设置下拉框可显示的选项个数 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "{' 高中 ',' 大学 ',' 硕士 ',' 博士 '}"
headerKey = "-1" headerValue = " 请选择您的学历 "
emptyOption = "true"
multiple = "true" size = "8" />
</ s:form >
< h3 > 使用 listKey 和 listValue 属性,利用 Action 实例的属性( property )来设置选项的值和选项的内容 </ h3 >
< s:form >
< s:select label = " 最高学历 " name = "education" list = "educations"
listKey = "id" listValue = "name" />
</ s:form
doubleselect 标签
doubleselect 标签输出关联的两个 HTML 列表框,产生联动效果。
名称 | 必需 | 默认 | 类型 | 描述 |
list | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 list 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容 |
listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value ,该选项只对第一个列表框起作用 |
listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用 |
headerKey | 否 | 无 | String | 设置当用户选择了 header 选项时,提交的的 value ,如果使用该属性,不能为该属性设置空值 |
headerValue | 否 | 无 | String | 显示在页面中 header 选项内容 |
emptyOption | 否 | false | Boolean |
|
multiple | 否 | false | Boolean | 是否多选 |
size | 否 | 无 | Integer | 显示的选项个数,该选项只对第一个列表框起作用 |
doubleId | 否 | 无 | String | 指定第二个列表框的 ID |
doubleList | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合 |
doubleListKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value ,该选项只对第二个列表框起作用 |
doubleListValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用 |
doubleSize | 否 | 无 | Integer | 选项个数 |
doubleName | 否 | 无 | String | 指定第二个列表框的 name 映射 |
doubleValue | 否 | 无 | Object | 第二个列表框的初始选种项 |
实例:
< s:form name = "test" >
< s:doubleselect label = " 请选择所在省市 "
name = "province" list = "{' 四川省 ',' 山东省 '}" doubleName = "city"
doubleList = "top == ' 四川省 ' ? {' 成都市 ', ' 绵阳市 '} : {' 济南市 ', ' 青岛市 '}" />
</ s:form >
< s:form action = "doubleselectTag" >
< s:doubleselect
label = " 请选择所在省市 "
name = "province"
list = "provinces"
listKey = "id"
listValue = "name"
doubleList = "cities"
doubleListKey = "id"
doubleListValue = "name"
doubleName = "city"
headerKey = "-1"
headerValue = "---------- 请选择 ----------"
emptyOption = "true" />
</ s:form >
复选框
名称 | 必需 | 默认 | 类型 | 描述 |
fieldValue | 是 | true | String | 指定在复选框选中时,实际提交的值 |
复选框组,对应 Action 中的集合
名称 | 必需 | 默认 | 类型 | 描述 |
list | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 list 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容 |
listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value |
listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 |
例子: checkboxlistTag.jsp
<%@ page contentType = "text/html;charset=GBK" %>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
< s:form >
< s:checkboxlist name = "interest" list = "{' 足球 ',' 篮球 ',' 排球 ',' 游泳 '}" label = " 兴趣爱好 " />
</ s:form >
单击复选框
文件选择组建
file 标签输出一个 HTML 文件选择框。
名称 | 必需 | 默认 | 类型 | 描述 |
accept | 否 | input | String | HTML accept 属性,指出接受文件的 MIME 类型 |
按钮
Submit 标签输出一个按钮, submit 标签和 form 标签使用可以提供异步表单提交功能。 Submit 标签可以输出以下三种类型的提交按钮:
Input : 等价于 HTML 代码 <input type=”submit”>
Image : 等价于 HTML 代码 < input type = "image" >
Button : < button type = "submit" ></ button >
名称 | 必需 | 默认 | 类型 | 描述 |
type | 否 | input | String | 要使用的提交按钮的类型,有效值: input button image |
src | 否 | 无 | String | 为 image 类型的提交按钮设置图片地址。该属性对 input 和 button 类型的提交按钮无效 |
action | 否 | 无 | String | 指定处理提交请求的 action |
method | 否 | 无 | String | 指定处理提交请求的 action 的方法 |
实例
实例 1. < s:submit type = "image" method = "login" src = "images/login.jpg" ></ s:submit >
页面输出:
<input
type
="image"
alt
="Submit"
src
="images/login.jpg"
id
="user__login"
name
="method:login"
value
="Submit"
/
>
实例 2. < s:submit type = "button" action = "selectTag" method = "login" label = " 登陆 " ></ s:submit >
页面输出:
<button type ="submit" id ="user_selectTag_login" name ="action:selectTag!login" value ="Submit" > 登陆</button >
Struts2 预定义的前缀:
1 。 method method:login
使用 method 前缀,来取代 action 默认的 execute() 方法的执行。
< s:form action = "user" >
< s:textfield name = "user.username" label = " 用户名 " ></ s:textfield >
< s:textfield name = "user.password" label = " 密码 " ></ s:textfield >
< s:submit value = " 登陆 " name = "method:login" ></ s:submit >
< s:submit value = " 注册 " name = "method:register" ></ s:submit >
</ s:form >
注意: 1 。 input 类型的按钮,不能用 label 设置按钮上的文本,只能用 value
2 、 action 前缀
使用 action 前缀,取代 form 标签指定的 action ,导向到另一个 action 进行处理。
< s:form action = "login" >
< s:textfield name = "user.username" label = " 用户名 " ></ s:textfield >
< s:textfield name = "user.password" label = " 密码 " ></ s:textfield >
< s:submit value = " 登陆 " ></ s:submit >
< s:submit value = " 注册 " name = "action:register" ></ s:submit >
</ s:form >
2 、 redirect 前缀
使用 redirect 前缀请求重定向到其他的 url ,甚至可以是 web 英语程序外部的 url 。
< s:form action = "login" >
< s:textfield name = "user.username" label = " 用户名 " ></ s:textfield >
< s:textfield name = "user.password" label = " 密码 " ></ s:textfield >
< s:submit value = " 登陆 " ></ s:submit >
< s:submit value = " 搜索 " name = "redirect:www.google.com" ></ s:submit >
</ s:form >
2 、 redirect-action 前缀
使用 redirect-action 前缀请求重定向到其他的 action.
< s:form action = "login" >
< s:textfield name = "user.username" label = " 用户名 " ></ s:textfield >
< s:textfield name = "user.password" label = " 密码 " ></ s:textfield >
< s:submit value = " 登陆 " ></ s:submit >
< s:submit value = " 搜索 " name = "redirect-action:register" ></ s:submit >
</ s:form >
reset 标签
reset 标签输出一个重置按钮
名称 | 必需 | 默认 | 类型 | 描述 |
type | 否 | input | String | 要使用的重置按钮的内容, input 、 button |
< s:reset value = " 重置 " ></ s:reset >
< s:reset type = "button" label = " 重置 " ></ s:reset >
updownselect 标签
updownselect 标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。
名称 | 必需 | 默认 | 类型 | 描述 |
list | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 list 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容 |
listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value |
listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 |
headerKey | 否 | 无 | String | 设置当用户选择了 header 选项时,提交的的 value ,如果使用该属性,不能为该属性设置空值 |
headerValue | 否 | 无 | String | 显示在页面中 header 选项内容 |
emptyOption | 否 | false | Boolean | 是否在 header 选项后面添加一个空选项 |
multiple | 否 | false | Boolean | 是否多选 |
size | 否 | 无 | Integer | 显示的选项个数 |
moveUplabel | 否 |
| String | 设置向上移动按钮上的文本 |
moveDownLabel | 否 |
| String | 设置向下移动按钮上的文本 |
selectAllLabel | 否 |
| String | 设置向全部选择按钮上的文本 |
allowMoveUp | 否 | 无 | Boolean | 设置是否使用向上移动按钮 |
allowMoveDown | 否 | 无 | Boolean | 设置是否使用向下移动按钮 |
allowSelectAll | 否 | 无 | Boolean | 设置是否使用全部选择按钮 |
实例:
< s:form >
<!-- 使用简单集合来生成可上下移动选项的下拉选择框 -->
< s:updownselect name = "a" label = " 请选择您喜欢的图书 " labelposition = "top"
moveUpLabel = " 向上移动 "
list = "{'Spring2.0 宝典 ' , ' 轻量级 J2EE 企业应用实战 ' , 'JavaScript: The Definitive Guide'}" />
<!-- 使用简单 Map 对象来生成可上下移动选项的下拉选择框
且使用 emptyOption="true" 增加一个空选项 -->
< s:updownselect name = "b" label = " 请选择您想选择出版日期 " labelposition = "top"
moveDownLabel = " 向下移动 "
list = " #{'Spring2.0 宝典 ':'2006 年 10 月 ' , ' 轻量级 J2EE 企业应用实战 ':'2007 月 4 月 ' , ' 基于 J2EE 的 Ajax 宝典 ':'2007 年 6 月 '} "
listKey = "key"
emptyOption = "true"
listValue = "value" />
< s:bean name = "com.zhaosoft.ui.formtag.BookService" id = "bs" />
<!-- 使用集合里放多个 JavaBean 实例来可上下移动选项的生成下拉选择框 -->
< s:updownselect name = "c" label = " 请选择您喜欢的图书的作者 " labelposition = "top"
selectAllLabel = " 全部选择 " multiple = "true"
list = "#bs.books"
listKey = "author"
listValue = "name" />
</ s:form >
package com.zhaosoft.ui.formtag;
public class BookService
{
public Book[] getBooks()
{
return new Book[]
{
new Book( "Spring2.0 宝典 " , "zhaosoft" ),
new Book( " 轻量级 J2EE 企业应用实战 " , "zhaosoft" ),
new Book( " 基于 J2EE 的 Ajax 宝典 " , "zhaosoft" )
};
}
}
optiontransferselect 标签
optiontransferselect 标签创建一个选项转移列表组建,它由两个 <select> 标签以及它们之间的用于将选项在两个 <select> 之间相互移动的按钮组成。表单提交时,将提交两个列表框中选中的选项。
名称 | 必需 | 默认 | 类型 | 描述 |
list | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 list 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容,该选项只对第一个列表框起作用 |
listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value ,该选项只对第一个列表框起作用 |
listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项只对第一个列表框起作用 |
headerKey | 否 | 无 | String | 设置当用户选择了 header 选项时,提交的的 value ,如果使用该属性,不能为该属性设置空值 |
headerValue | 否 | 无 | String | 显示在页面中 header 选项内容 |
multiple | 否 | false | Boolean | 是否多选 |
size | 否 | 无 | Integer | 显示的选项个数,该选项只对第一个列表框起作用 |
doubleId | 否 | 无 | String | 指定第二个列表框的 ID |
doubleList | 是 | 无 | Cellection Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,如果 doubleList 的属性为 Map 则 Map 的 key 成为选项的 value , Map 的 value 会成为选项的内容,该选项只对第二个列表框起作用 |
doubleListKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的 value ,该选项只对第二个列表框起作用 |
doubleListValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项只对第二个列表框起作用 |
doubleHeaderKey | 否 | 无 | String | 设置当用户选择了 header 选项时,提交的的 value ,如果使用该属性,不能为该属性设置空值 |
doubleHeaderVale | 否 | 无 | String | 显示在页面中 header 选项内容 |
doubleEmptyOption | 否 | 无 | String | 是否在第二列表框的 header 后面添加一个空选项 |
doubleMultiple | 否 | true | Boolean | 是否多选 |
doubleSize | 否 | 无 | Integer | 选项个数 |
doubleName | 否 | 无 | String | 指定第二个列表框的 name 映射 |
doubleValue | 否 | 无 | Object | 第二个列表框的初始选种项 |
leftTitle | 否 | 无 | String | 左边列表框的标题 |
rightTitle | 否 | <- | String | 右边列表框的标题 |
addToLeftLable | 否 |
| String |
|
addToRightLable |
|
|
|
|
addAllToLeftLable |
|
|
|
|
addAllToRightLable |
|
|
|
|
leftUpLabel |
|
|
|
|
leftDownLabel |
|
|
|
|
rightUpLabel |
|
|
|
|
rightDownLabel |
|
|
|
|
allowAddToLeft |
|
|
|
|
allowAddToright |
|
|
|
|
allowAddAllToLeft |
|
|
|
|
allowAddAllToRight |
|
|
|
|
allowSelectAll | 否 | 无 | Boolean | 设置是否使用全部选择按钮 |
allowUpdownOnLeft |
|
|
|
|
allowUpDownOnRight |
|
|
|
|
例子:
< s:head />
< s:form >
< s:optiontransferselect
label = " 最喜爱的图书 "
name = "javaBook"
list = "{' 《 Java Web 开发详解》 ', ' 《 Struts 2 深入详解》 ', ' 《 Java 快速入门》 '}"
doubleName = "cBook"
doubleList = "{' 《 VC++ 深入详解》 ', ' 《 C++ Primer 》 ', ' 《 C++ 程序设计语言》 '}" />
</ s:form >
---------------------------
< s:form >
< s:optiontransferselect
label = " 最喜爱的图书 "
name = "book1"
leftTitle = "Java 图书 "
rightTitle = "C/C++ 图书 "
list = "{' 《 Java Web 开发详解》 ', ' 《 Struts 2 深入详解》 ', ' 《 Java 快速入门》 '}"
headerKey = "-1"
headerValue = "--- 请选择 ---"
emptyOption = "true"
doubleName = "book2"
doubleList = "{' 《 VC++ 深入详解》 ', ' 《 C++ Primer 》 ', ' 《 C++ 程序设计语言》 '}"
doubleHeaderKey = "-1"
doubleHeaderValue = "--- 请选择 ---"
doubleEmptyOption = "true"
addToLeftLabel = " 向左移动 "
addToRightLabel = " 向右移动 "
addAllToLeftLabel = " 全部左移 "
addAllToRightLabel = " 全部右移 "
selectAllLabel = " 全部选择 "
leftUpLabel = " 向上移动 "
leftDownLabel = " 向下移动 "
rightUpLabel = " 向上移动 "
rightDownLabel = " 向下移动 " />
</ s:form >