现在的位置: 首页 > 综合 > 正文

struts2标签详解

2018年05月09日 ⁄ 综合 ⁄ 共 12654字 ⁄ 字号 评论关闭

版权声明:本文转自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
>

抱歉!评论已关闭.