Struts2标签库.docx

上传人:b****8 文档编号:9727195 上传时间:2023-02-06 格式:DOCX 页数:39 大小:28.91KB
下载 相关 举报
Struts2标签库.docx_第1页
第1页 / 共39页
Struts2标签库.docx_第2页
第2页 / 共39页
Struts2标签库.docx_第3页
第3页 / 共39页
Struts2标签库.docx_第4页
第4页 / 共39页
Struts2标签库.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

Struts2标签库.docx

《Struts2标签库.docx》由会员分享,可在线阅读,更多相关《Struts2标签库.docx(39页珍藏版)》请在冰豆网上搜索。

Struts2标签库.docx

Struts2标签库

Taglib(Struts2标签库)

Struts2Taglib抽象了不同表示技术,现在Struts2主要支持三种表示技术:

JSP,FreeMarker和Velocity。

但部分的Tag在三种表示技术下都可以使用,但是也有部分只能在某一种情况下使用。

Tab可以分为两类:

通用标签和UI标签。

4.1节通用标签

通用标签用来在页面表示的时候控制代码执行的过程,这些标签也允许从Action或者值堆栈中取得数据。

例如地域,JavaBeans,URLs,和action。

控制标签控制程序执行,例如:

if,else,iterator

数据标签管理数据的取得和创建,例如:

bean,push,i18n

控制标签

if标签

描述

If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

id

 

String

用来表示该元素,对于UI和Form标签来说直接转变为HTMLid属性

test

 

Boolean

用来决定是否显示标签内部内容的表达式

 例子

iftest="%{false}">

WillNotBeExecuted

if>

elseiftest="%{true}">

WillBeExecuted

elseif>

else>

WillNotBeExecuted

else>

elseIf标签

参考if标签

else标签

参考if标签

append标签

描述

用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

id

 

String

用来保存结果iterator的对象在valuecontext中的名字。

 例子

Action类

publicclassAppendIteratorTagActionextendsActionSupport{

 

privateListmyList1;

privateListmyList2;

privateListmyList3;

 

 

publicStringexecute()throwsException{

 

myList1=newArrayList();

myList1.add("1");

myList1.add("2");

myList1.add("3");

 

myList2=newArrayList();

myList2.add("a");

myList2.add("b");

myList2.add("c");

 

myList3=newArrayList();

myList3.add("A");

myList3.add("B");

myList3.add("C");

 

return"done";

}

 

publicListgetMyList1(){returnmyList1;}

publicListgetMyList2(){returnmyList2;}

publicListgetMyList3(){returnmyList3;}

 

标签使用

appendid="myAppendIterator">

paramvalue="%{myList1}"/>

paramvalue="%{myList2}"/>

paramvalue="%{myList3}"/>

append>

iteratorvalue="%{#myAppendIterator}">

property/>

iterator>

 generator标签(JSPTag)

描述

从val属性生成一个iterator。

参数

例子

例1:

生成一个简单的iterator,并且使用iterator标签打印出内容。

generatorval="%{'aaa,bbb,ccc,ddd,eee'}">

iterator>

property/>

iterator>

generator>

 

例2:

生成一个iterator,使用count属性。

因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。

Generateaniteratorwithcountattribute

generatorval="%{'aaa,bbb,ccc,ddd,eee'}"count="3">

iterator>

property/>

iterator>

generator>

 

例3:

生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。

generatorval="%{'aaa,bbb,ccc,ddd,eee'}"count="4"separator=","id="myAtt"/>

<%

Iteratori=(Iterator)pageContext.getAttribute("myAtt");

while(i.hasNext()){

Strings=(String)i.next();

%>

<%=s%>

<%

}

%>

 

例4:

生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"converter-"前缀。

generatorval="%{'aaa,bbb,ccc,ddd,eee'}"converter="%{myConverter}">

iterator>

property/>

iterator>

generator>

 

 

publicclassGeneratorTagActionextendsActionSupport{

 

....

 

publicConvertergetMyConverter(){

returnnewConverter(){

publicObjectconvert(Stringvalue)throwsException{

return"converter-"+value;

}

};

}

 

...

 

}

 

iterator标签

描述

迭代处理一个java.util.Connection或者java.util.Iterator对象

 

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

id

 

String

Id,

status

Boolean

如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态

value

 

String

被迭代的对象

 

 

例子

例1:

iteratorvalue="days">

dayis:

property/>

iterator>

 

例2:

beanname="org.apache.struts2.example.IteratorExample"id="it">

paramname="day"value="'foo'"/>

paramname="day"value="'bar'"/>

bean>

Daysoftheweek

iteratorvalue="#it.days"status="rowstatus">

iftest="#rowstatus.odd==true">

grey">

property/>

if>

else>

property/>

else>

iterator>

 

例3:

iteratorvalue="groupDao.groups"status="groupStatus">

class="

iftest="#groupStatus.odd==true">odd

if>

else>even

else>">

propertyvalue="name"/>

propertyvalue="description"/>

iteratorvalue="users"status="userStatus">

propertyvalue="fullName"/>

iftest="!

#userStatus.last">,

if>

iterator>

iterator>

 

merge标签(同append?

描述

参数

例子

 

sort标签(JSP-Tag)

描述

对一个可以迭代的对象进行排序操作。

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

Comparator

 

java.util.Comparator

排序用的比较器

Source

 

String

排序对象

 

例子

例1:

sortcomparator="myComparator"source="myList">

iterator>

--dosomethingwitheachsortedelements-->

propertyvalue="..."/>

iterator>

sort>

 

例2:

sortid="mySortedList"comparator="myComparator"source="myList"/>

<%

IteratorsortedIterator=(Iterator)pageContext.getAttribute("mySortedList");

for(Iteratori=sortedIterator;i.hasNext();){

//dosomethingwitheachofthesortedelements

}

%>

 

subset

描述

递归iterator的一部分

 

参数

名字

是否必须

默认值

可否使用表达式

类型

描述

count

False

 

Integer

Iterator中被递归的一部分的item的数量

Decider

 

org.apache.struts2.util.

SubsetIteratorFilter.Decider

用来判断iterator中的item是否包含在最终的subset内部

Source

 

String

Iterator的对象

Start

 

Integer

开始位置

 

例子

Java类

 

publicclassMySubsetTagActionextendsActionSupport{

publicStringexecute()throwsException{

l=newArrayList();

l.add(newInteger

(1));

l.add(newInteger

(2));

l.add(newInteger(3));

l.add(newInteger(4));

l.add(newInteger(5));

return"done";

}

 

 

publicInteger[]getMyArray(){

returna;

}

 

publicListgetMyList(){

returnl;

}

 

publicDecidergetMyDecider(){

returnnewDecider(){

publicbooleandecide(Objectelement)throwsException{

inti=((Integer)element).intValue();

return(((i%2)==0)?

true:

false);

}

};

}

}

--s:

Listbasic-->

subsetsource="myList">

iterator>

property/>

iterator>

subset>

--B:

Listwithcount-->

subsetsource="myList"count="3">

iterator>

property/>

iterator>

subset>

--C:

Listwithstart-->

subsetsource="myList"count="13"start="3">

iterator>

property/>

iterator>

subset>

--D:

Listwithid-->

subsetid="mySubset"source="myList"count="13"start="3"/>

<%

Iteratori=(Iterator)pageContext.getAttribute("mySubset");

while(i.hasNext()){

%>

<%=i.next()%>

<%}%>

--D:

ListwithDecider-->

subsetsource="myList"decider="myDecider">

iterator>

property/>

iterator>

subset>

 

数据标签

@TODO完成如下数据标签

数据标签包括

a

action

bean

date

debug

i18n

include

param

push

set

text

url

property

 

4.2节UI标签

UI标签主要是指Form相关的标签,UI标签又分为两部分:

form标签和构成form内部字段的其他标签。

每一个UI标签都是基于模板的,即:

每一个标签都有一个对应的模板用来生成UI标签的样式,详细内容参看模板节。

 

所有的UI标签都有着共通的祖先UIBean,UIBean提供了这些UI标签的一系列共通的属性,这些属性可以分为三类:

模版相关的属性,JavaScript相关的属性和其他通用属性。

 

模版相关属性:

属性

主题

数据类型

说明

templateDir

n/a

String

定义模版目录

theme

n/a

String

定义主题的名字

template

n/a

String

定义模版名字

 

JavaScript相关属性:

属性

主题

数据类型

说明

onclick

simple

String

htmljavascriptonclick属性

ondbclick

simple

String

htmljavascriptondbclick属性

onmousedown

simple

String

htmljavascriptonmousedown属性

onmouseup

simple

String

htmljavascriptonmouseup属性

onmouseover

simple

String

htmljavascriptonmouseover属性

onmouseout

simple

String

htmljavascriptonmouseout属性

onfocus

simple

String

htmljavascriptonfocus属性

onblur

simple

String

htmljavascriptonblur属性

onkeypress

simple

String

htmljavascriptonkeypress属性

onkeyup

simple

String

htmljavascriptonkeyup属性

onkeydown

simple

String

htmljavascriptonkeydown属性

onselect

simple

String

htmljavascriptonselect属性

onchange

simple

String

htmljavascriptonchange属性

 

Tooltip相关属性:

属性

数据类型

默认值

说明

tooltip

String

none

为指定的组件设置Tooltip

jsTooltipEnabled

String

false

使用js表示tooltip

tooltipIcon

String

/struts/static/tooltip/tooltip.gif

指向tooltip图表的URL

tooltipDelay

String

500

多长时间后显示Tooltip

key

simple

String

这个输入字段对应的属性,用来自动设置name,label和value

 

通用属性:

属性

主题

数据类型

说明

cssClass

simple

String

定义htmlclass属性

cssStyle

simple

String

定义htmlstyle属性

title

simple

String

定义htmltitle属性

disabled

simple

String

定义htmldisabled属性

label

xhtml

String

定义form字段的标签

labelPosition

xhtml

String

定义标签在Form中的位置,从左从上计算

requiredPosition

xhtml

String

定义必须的标签在Form中的位置,从左从上计算

name

simple

String

定义form字段的name映射

required

xhtml

Boolean

在label上添加一个*

tabIndex

simple

String

定义htmltabIndex属性

value

simple

Object

定义form字段的值

 

对于name和value的说明:

name用来说明Form字段的名字,和Action类的属性对应。

value用来记录Form字段的值,和Action类中属性的值对应。

所以在修改一个字段的内容的时候应该使用如下的标签:

formaction="updateAddress">

textfieldlabel="PostalCode"name="postalCode"value="%{postalCode}"/>

...

form>

但是,由于name和value的关系,struts2标准标签可以自动对应,所以也可以使用如下标签:

formaction="updateAddress">

textfieldlabel="PostalCode"name="postalCode"/>

...

form>

 

UI标签说明:

Form部分

autocompleter

checkbox

checkboxlist

combobox

datetimepicker

doubleselect

head

file

form

hidden

label

optiontransferselect

optgroup

password

radio

reset

select

submit

textarea

textfield

token

updownselect

 

非Form部分:

actionerror

actionmessage

component

div

fielderror

table

tabbedPanel

tree

treenode

 

4.3节主题和模板

概念说明:

标签(tag):

一小段代码,在JSP,Velocity或者FreeMarker中执行。

程序开发的最小单位,用来生成HTML对应的元素。

模板(template):

一些代码,通常使用FreeMarker写成,可以被某些Tag表示出来(通常是UITag)。

主题(theme):

一组模板打包在一起,提供通用功能的模版

 

主题和模板主要针对可视化的标签(Tag)而言,使用以下例子来说明三者之间的关系。

假如我们要开发如下的一个画面:

我们使用如下的代码:

 

urlaction="login"id="loginUrl">

url>

formaction="%{loginUrl}">

textfieldlabel="Name"name="name"/>

passwordlabel="Password"name="password"/>

submit>

submit>

reset>

reset>

form>

 

这里

form>,

textfield>,

passwor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1