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

struts2 标签大全及用法

2011-04-29 15:19 381 查看
2009
-
10
-
30

struts2.x 标签库 及 用法大全

关键字: struts2.x 标签 库 用法
大全 struts2

一、 url标签

 简介

url标签用于生成一个URL地址,可以通过url标签指定param子元素,从而向指定URL发送请求参数。

1. jsp代码

<html>

<head>

<meta http-equiv="Content-Type"
content="text/html; charset=GBK"/>

<title>使用s:url来生成一个URL地址</title>

</head>

<body>

<h2>s:url来生成一个URL地址</h2>

只指定value属性的形式。<br>

<s:url value="editGadget.action"/>

<hr>

指定action属性,且使用param传入参数的形式。<br>

<s:url
action="showBook">

<s:param name="author" value="'yeeku'" />

</s:url>

既不指定action属性,也不指定value属性,且使用param传入参数的形式。<br>

<s:url includeParams="get" >

<s:param name="id"
value="%{'22'}"/>

</s:url>

同时指定action属性和value属性,且使用param传入参数的形式。<br>

<s:url
action="showBook" value="xxxx">

<s:param name="author" value="'yeeku'"
/>

</s:url>

</body></html>

备注:我们用的最多的是以下的方式:

<s:url id="url" action="preModifyCategoryName"
includeParams="none" namespace="/category">

<s:param
name="categoryId" value="%{categoryId}"/>

</s:url>

<s:a
href="%{url}">

<s:text name="modify_category_name"/>

</s:a>

2. 页面效果

s:url来生成一个URL地址

只指定value属性的形式。

editGadget.action

________________________________________

指定action属性,且使用param传入参数的形式。

/portal/test/showBook.action?author=yeeku

________________________________________

既不指定action属性,也不指定value属性,且使用param传入参数的形式。

/portal/test/s-url.jsp?id=22

________________________________________

同时指定action属性和value属性,且使用param传入参数的形式。

xxxx?author=yeeku

二、
s:checkboxlist标签

 简介

Checkboxlist标签可以一次创建多个复选框,用于一次生成多个HTML标签中的<inputtype=”checkbox”
…/>,它根据list属性指定的集合来生成多个复选框。

1. jsp代码

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>

<title>使用s:checkboxlist生成多个复选框</title>

<s:head/>

</head>

<body>

<h3>使用s:checkboxlist生成多个复选框</h3>

<s:form>

<!--
使用简单集合来生成多个复选框 -->

<s:checkboxlist name="a" label="请选择您喜欢的图书"
labelposition="top"

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' ,
'基于J2EE的Ajax宝典'}"/>

<!-- 使用简单Map对象来生成多个复选框 -->

<s:checkboxlist name="b" label="请选择您想选择出版日期" labelposition="top"

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' ,
'基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

<s:bean name="lee.BookService" id="bs"/>

</s:form>

</body>

</html>

备注

 <!--
使用集合里放多个JavaBean实例来生成多个复选框 -->

<s:checkboxlist name="b"
label="请选择您喜欢的图书" labelposition="top"

list="#bs.books"

listKey="name"

listValue="author"/>

 listKey:该属性指定集合元素中某个属性作为复选框的value.


listValue: 该属性指定集合元素中某个属性作为复选框的标签。

2. 页面效果

三、
使用s:combobox生成下拉输入框

 简介

Combobox标签生成一个单行文本框和下拉列表框的组合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name,也不会产生请求参数。使用该标签,需要指定一个list属性,该list属性指定的集合将用于生成列表项。

1. Jsp代码

<body>

<h3>使用s:combobox生成下拉输入框</h3>

<s:form>

<s:combobox label="请选择您喜欢的图书" theme="css_xhtml"
labelposition="top"

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' ,
'基于J2EE的Ajax宝典'}"

size="20" maxlength="20" name="book"/>

</s:form>

</body>

1. 页面效果

第一步

第二步

备注:

与<s:select
…/>标签不同的是,对于下面的下拉列表,无需指定listKey和listValue属性,因为此处的下拉列表,不再用于发送请求参数,而仅仅是用于辅助输入,因此该下拉列表的value没有任何意义。(注:使用combobox标签时不能指定listKey和
listValue属性)

四、 使用s:datetimepicker生成日期选择框

 简介

Datetimepicker标签生成一个日期,时间下拉选择框,当我们使用该日期,时间选择框选择某个日期,时间,系统会自动将选中的日期,时间输入指定文本框。

1. Jsp代码

<body>

<h3>使用使用s:datetimepicker生成日期选择框</h3>

<s:form
theme="simple">

日期选择部件,指定toggleType属性,且指定value="today"<br>

<s:datetimepicker name="order.date" label="购买日期" toggleType="explode"
value="today"/><hr>

日期选择部件,指定了format属性<br>

<s:datetimepicker name="order.date" label="购买日期"
displayFormat="dddd年MM月dd日"/><hr>

日期选择部件,指定了weekStartsOn属性<br>

<s:datetimepicker
name="order.date" label="购买日期" displayFormat="dddd年MM月dd日"
weekStartsOn="2"/><hr>

时间选择部件<br>

<s:datetimepicker
label="选择出发时间'" name="start" type="time" value="13:00"/><hr>

</s:form>

</body>

2. 页面效果

第一步

第二步

第三步 :

第四步:

备注


toggleType:指定日期选择框出现、隐藏的方式,可以选择plain,wipe,explode和fade4个值。


value:指定当前的日期,时间。可使用today来代表今天。

五、 使用s:select生成下拉选择框

 简介

Select
标签用于生成一个下拉列表框,通过为该元素指定list属性,系统会使用list属性指定的集合来生成下拉列表框的选项。

1. Jsp代码

<body>

<h3>使用s:select生成下拉选择框</h3>

<s:form>

<!-- 使用简单集合来生成下拉选择框 -->

<s:select name="a" label="请选择您喜欢的图书"
labelposition="top" multiple="true"

list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' ,
'JavaScript: The Definitive Guide'}"/>

<!-- 使用简单Map对象来生成下拉选择框 -->

<s:select name="b" label="请选择您想选择出版日期" labelposition="top"

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' ,
'基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

<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>

</body>

2. 页面效果

第二步

六、使用s:radio生成多个单选框

 简介

s:radio生成多个单选框。

1. Jsp代码

<body>

<h3>使用s:radio生成多个单选框</h3>

<s:form>

<!--
使用简单集合来生成多个单选框 -->

<s:radio name="a" label="请选择您喜欢的图书"
labelposition="top"

list="{'Spring2.0宝典' , 'Spring In Action' , 'JavaScript:
The Definitive Guide'}"/>

<!-- 使用简单Map对象来生成多个单选框 -->

<s:radio name="b" label="请选择您想选择出版日期" labelposition="top"

list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' ,
'基于J2EE的Ajax宝典':'2007年6月'}"

listKey="key"

listValue="value"/>

<s:bean name="lee.BookService" id="bs"/>

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

<s:radio name="c" label="请选择您喜欢的图书"
labelposition="top"

list="#bs.books"

listKey="author"

listValue="name"/>

</s:form>

</body>

2、 页面效果

七、使用s:optgroup生成下拉选择框的选项组

 简介

Optgroup标签用于生成一个下拉列表框的选项组。

1. Jsp代码

<body>

<h3>使用s:optgroup生成下拉选择框的选项组</h3>

<s:form>

<!--
使用Map对象来生成下拉选择框的选项组 -->

<s:select label="选择您喜欢的图书"

name="book"

list="#{'Spring2.0宝典':'李刚','轻量级J2EE企业应用实战':'李刚','基于J2EE的Ajax宝典':'李刚'}"

listKey="value"

listValue="key">

<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>

</body>

2、 页面效果

第二步

八、使用s:optiontransferselect来生成可移动列表项的下拉列表框

 简介

使用s:optiontransferselect来生成可移动列表项的下拉列表框。

1. Jsp代码

<body>

<h3>使用s:optiontransferselect来生成可移动列表项的下拉列表框</h3>

<s:form>

<!-- 使用简单集合对象来生成可移动的下拉列表框 -->

<s:optiontransferselect

label="请选择你喜欢的图书"

name="cnbook"

leftTitle="中文图书:"

rightTitle="外文图书"

list="{'Spring2.0宝典','轻量级J2EE企业应用实战','基于J2EE的Ajax宝典'}"

multiple="true"

addToLeftLabel="向左移动"

selectAllLabel="全部选择"

addAllToRightLabel="全部右移"

headerKey="cnKey"

headerValue="--- 选择中文图书
---"

emptyOption="true"

doubleList="{' J2EE Design and Development',
'The Definitive Guide'}"

doubleName="enBook"

doubleHeaderKey="enKey"

doubleHeaderValue="--- 选择外文图书 ---"

doubleEmptyOption="true"

doubleMultiple="true"

/>

</s:form>

</body>

2、 页面效果

备注:

如果我们不想用它默认的图标,我们可以添加标签,将它默认的覆盖掉:例如我们添加如下代码:

addToRightLabel="向右移动"

leftDownLabel="下移按钮 "

页面效果

九、使用s:updownselect生成可上下移动选项的下拉选择框

 简介

Updownselect标签的用法非常类似于select标签的用法,区别是该标签声称的列表框可以支持选项的上下移动。

1. Jsp代码

<body>

<h3>使用s:updownselect生成可上下移动选项的下拉选择框</h3>

<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="lee.BookService" id="bs"/>

<!-- 使用集合里放多个JavaBean实例来可上下移动选项的生成下拉选择框 -->

<s:updownselect
name="c" label="请选择您喜欢的图书的作者" labelposition="top"

selectAllLabel="全部选择"
multiple="true"

list="#bs.books"

listKey="author"

listValue="name"/>

</s:form>

</body>

2.页面效果

十、使用s:doubleselect生成级联下拉列表框

 简介

1.Jsp代码

<body>

<h3>使用s:doubleselect生成级联下拉列表框</h3>

<s:form action="x" method="post" theme="simple">

<s:doubleselect

label="请选择您喜欢的图书"

name="author" list="{'李刚', 'David'}"

doubleList="top == '李刚' ?
{'Spring2.0宝典', '轻量级J2EE企业应用实战' , '基于J2EE的Ajax宝典'} : {'JavaScript: The
Definitive Guide'}"

doubleName="book"/>

</s:form>

</body>

2。页面效果

备注:

错误原因可能是我们的模板有bug.

十一、使用s:tree和s:treenode标签生成静态树

 简介

1。Jsp代码

<body>

<s:tree label="计算机图书" id="book"
theme="ajax"

showRootGrid="true" showGrid="true"
treeSelectedTopic="treeSelected">

<s:treenode theme="ajax"
label="李刚" id="yeeku">

<s:treenode theme="ajax"
label="Spring2.0宝典" id="spring"/>

<s:treenode theme="ajax"
label="轻量级J2EE企业应用实战" id="lightweight"/>

<s:treenode
theme="ajax" label="基于J2EE的Ajax宝典" id="ajax"/>

</s:treenode>

<s:treenode theme="ajax" label="David" id="David">

<s:treenode theme="ajax" label="JavaScript: The Definitive Guide"
id="javascript"/>

</s:treenode>

<s:treenode
theme="ajax" label="Johnson" id="Johnson">

<s:treenode
theme="ajax" label="Expert One-on-One J2EE Design and Development"
id="j2ee"/>

</s:treenode>

</s:tree>

</body>

2。页面效果

十二、使用s:append标签拼接两个集合

 简介

使用s:append标签拼接
多个集合,组成一个新的集合。

1.Jsp代码

<body>

<s:append id="newList">

<s:param value="{'Spring2.0宝典','轻量级J2EE企业应用实战','基于J2EE的Ajax宝典'}" />

<s:param value="{'新东方IT培训', '东方标准职业教育'}" />

</s:append>

<table border="1" width="240">

<s:iterator value="#newList"
status="st">

<tr <s:if
test="#st.odd">style="background-color:#bbbbbb"</s:if>>

<td><s:property/></td>

</tr>

</s:iterator>

</table>

</body>

2。页面效果

十三、使用s:append标签拼接集合和Map

 简介

Append标签用于将多个集合对象拼接起来,组成一个新的集合。通过这种拼接,从而允许通过一个<s:iterator
…/>标签就完成对多个集合的迭代。

1.Jsp代码

<body>

<s:append
id="newList">

<s:param
value="#{'Spring2.0宝典':'李刚','轻量级J2EE企业应用实战':'李刚','基于J2EE的Ajax宝典':'李刚'}" />

<s:param value="#{'新东方IT培训', '东方标准职业教育'}" />

</s:append>

<table border="1" width="240">

<s:iterator value="#newList"
status="st">

<tr <s:if
test="#st.odd">style="background-color:#bbbbbb"</s:if>>

<td><s:property value="key"/></td>

<td><s:property value="value"/></td>

</tr>

</s:iterator>

</table>

</body>

2.页面效果

十五、使用s:generator生成集合

 简介

使用generator标签可以将指定字符串按指定分隔符分隔成多个子串,临时生成的多个子串可以使用iterator标签迭代输出。可以这样理解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,但一旦该标签结束,该集合将被移出ValueStack。

1.Jsp代码

<body>

<s:generator
val="'Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'"

separator="," id="books"
count="2"/>

<table border="1" width="240">

<%

java.util.Iterator i = (java.util.Iterator)
pageContext.getAttribute("books");

while(i.hasNext())

{

String s =
(String) i.next(); %>

<tr>

<td><%=s%></td>

</tr>

<%

}

%>

</table>

</body>

备注:如果指定了count属性,则以为这集合中最多只能包含count个元素(就是前coun个元素);如果指定了id属性,就可以将临时生成的集合放置到pageContext属性中。

2.页面效果



3.jsp代码

<body>

<table border="1"
width="240">

<s:generator
val="'Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'" separator=",">

<s:iterator status="st">

<tr <s:if
test="#st.odd">style="background-color:#bbbbbb"</s:if>>

<td><s:property/></td>

</tr>

</s:iterator>

</s:generator>

</table>

</body>

4。页面效果



用过struts1.x的人都知道,标签库有html、bean、logic、tiles,

而struts2.0里的标签却没有分类,只用在jsp头文件加上

<%@ taglib prefix="s"
uri="/struts-tags" %>

就能使用struts2.0的标签库

下面就介绍下每个标签的用法:

A:

<s:a href=""></s:a>-----超链接,类似于html里的<a></a>

<s:action name=""></s:action>-----执行一个view里面的一个action

<s:actionerror/>-----如果action的errors有值那么显示出来

<s:actionmessage/>-----如果action的message有值那么显示出来

<s:append></s:append>-----添加一个值到list,类似于list.add();

<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax

B:

<s:bean
name=""></s:bean>-----类似于struts1.x中的,JavaBean的值

C:

<s:checkbox></s:checkbox>-----复选框

<s:checkboxlist
list=""></s:checkboxlist>-----多选框

<s:combobox
list=""></s:combobox>-----下拉框

<s:component></s:component>-----图像符号

D:

<s:date/>-----获取日期格式

<s:datetimepicker></s:datetimepicker>-----日期输入框

<s:debug></s:debug>-----显示错误信息

<s:div></s:div>-----表示一个块,类似于html的<div></div>

<s:doubleselect list="" doubleName=""
doubleList=""></s:doubleselect>-----双下拉框

E:

<s:if
test=""></s:if>

<s:elseif test=""></s:elseif>

<s:else></s:else>-----这3个标签一起使用,表示条件判断

F:

<s:fielderror></s:fielderror>-----显示文件错误信息

<s:file></s:file>-----文件上传

<s:form
action=""></s:form>-----获取相应form的值

G:

<s:generator
separator="" val=""></s:generator>----和<s:iterator>标签一起使用

H:

<s:head/>-----在<head></head>里使用,表示头文件结束

<s:hidden></s:hidden>-----隐藏值

I:

<s:i18n
name=""></s:i18n>-----加载资源包到值堆栈

<s:include
value=""></s:include>-----包含一个输出,servlet或jsp页面

<s:inputtransferselect
list=""></s:inputtransferselect>-----获取form的一个输入

<s:iterator></s:iterator>-----用于遍历集合

L:

<s:label></s:label>-----只读的标签

M:

<s:merge></s:merge>-----合并遍历集合出来的值

O:

<s:optgroup></s:optgroup>-----获取标签组

<s:optiontransferselect doubleList="" list=""
doubleName=""></s:optiontransferselect>-----左右选择框

P:

<s:param></s:param>-----为其他标签提供参数

<s:password></s:password>-----密码输入框

<s:property/>-----得到'value'的属性

<s:push
value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性

R:

<s:radio list=""></s:radio>-----单选按钮

<s:reset></s:reset>-----重置按钮

S:

<s:select
list=""></s:select>-----单选框

<s:set
name=""></s:set>-----赋予变量一个特定范围内的值

<s:sort
comparator=""></s:sort>-----通过属性给list分类

<s:submit></s:submit>-----提交按钮

<s:subset></s:subset>-----为遍历集合输出子集

T:

<s:tabbedPanel id=""></s:tabbedPanel>-----表格框

<s:table></s:table>-----表格

<s:text
name=""></s:text>-----I18n文本信息

<s:textarea></s:textarea>-----文本域输入框

<s:textfield></s:textfield>-----文本输入框

<s:token></s:token>-----拦截器

<s:tree></s:tree>-----树

<s:treenode
label=""></s:treenode>-----树的结构

U:

<s:updownselect
list=""></s:updownselect>-----多选择框

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