Struts2标签库详解2Word文档格式.docx
《Struts2标签库详解2Word文档格式.docx》由会员分享,可在线阅读,更多相关《Struts2标签库详解2Word文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
elseiftest="
%{true}"
WillBeExecuted<
elseif>
else>
elseIf标签
参考if标签
else标签
append标签
用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
用来保存结果iterator的对象在valuecontext中的名字。
Action类
publicclassAppendIteratorTagActionextendsActionSupport{
privateListmyList1;
privateListmyList2;
privateListmyList3;
publicStringexecute()throwsException{
myList1=newArrayList();
myList1.add("
1"
);
2"
3"
myList2=newArrayList();
myList2.add("
a"
b"
c"
myList3=newArrayList();
myList3.add("
A"
B"
C"
return"
done"
;
}
publicListgetMyList1(){returnmyList1;
publicListgetMyList2(){returnmyList2;
publicListgetMyList3(){returnmyList3;
标签使用
appendid="
myAppendIterator"
paramvalue="
%{myList1}"
/>
%{myList2}"
%{myList3}"
append>
iteratorvalue="
%{#myAppendIterator}"
property/>
iterator>
generator标签(JSPTag)
从val属性生成一个iterator。
例1:
生成一个简单的iterator,并且使用iterator标签打印出内容。
generatorval="
%{'
aaa,bbb,ccc,ddd,eee'
}"
br/>
generator>
例2:
生成一个iterator,使用count属性。
因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。
Generateaniteratorwithcountattribute
count="
例3:
生成iterator,使用了id属性,之后生成的对象放在pageContext中,可以通过指定的id来访问。
4"
separator="
"
id="
myAtt"
%
Iteratori=(Iterator)pageContext.getAttribute("
while(i.hasNext()){
Strings=(String)i.next();
%>
%=s%>
%
}
例4:
生成iterator,使用converter属性,这里的convertor仅仅将每一个对象添加了一个"
converter-"
前缀。
converter="
%{myConverter}"
publicclassGeneratorTagActionextendsActionSupport{
....
publicConvertergetMyConverter(){
returnnewConverter(){
publicObjectconvert(Stringvalue)throwsException{
+value;
};
...
}
iterator标签
迭代处理一个java.util.Connection或者java.util.Iterator对象
Id,
status
如果指定,在循环的过程中会保留一个IteratorStatus类型的变量,该变量用来查询当前迭代的状态
value
被迭代的对象
例1:
days"
p>
dayis:
property/>
/p>
例2:
beanname="
org.apache.struts2.example.IteratorExample"
it"
paramname="
day"
value="
'
foo'
"
/>
bar'
bean>
p/>
tableborder="
0"
cellspacing="
cellpadding="
tr>
th>
Daysoftheweek<
/th>
/tr>
#it.days"
status="
rowstatus"
#rowstatus.odd==true"
tdstyle="
background:
grey"
/td>
td>
/table>
例3:
groupDao.groups"
groupStatus"
tr
class="
#groupStatus.odd==true"
odd<
even<
propertyvalue="
name"
description"
users"
userStatus"
fullName"
!
#userStatus.last"
<
merge标签(同append?
)
sort标签(JSP-Tag)
对一个可以迭代的对象进行排序操作。
Comparator
java.util.Comparator
排序用的比较器
Source
排序对象
sortcomparator="
myComparator"
source="
myList"
--dosomethingwitheachsortedelements-->
..."
sort>
sortid="
mySortedList"
comparator="
IteratorsortedIterator=(Iterator)pageContext.getAttribute("
for(Iteratori=sortedIterator;
i.hasNext();
){
//dosomethingwitheachofthesortedelements
subset
递归iterator的一部分
count
False
Integer
Iterator中被递归的一部分的item的数量
Decider
org.apache.struts2.util.
SubsetIteratorFilter.Decider
用来判断iterator中的item是否包含在最终的subset内部
Iterator的对象
Start
开始位置
Java类
publicclassMySubsetTagActionextendsActionSupport{
l=newArrayList();
l.add(newInteger
(1));
l.add(newInteger
(2));
l.add(newInteger(3));
l.add(newInteger(4));
l.add(newInteger(5));
publicInteger[]getMyArray(){
returna;
publicListgetMyList(){
returnl;
publicDecidergetMyDecider(){
returnnewDecider(){
publicbooleandecide(Objectelement)throwsException{
inti=((Integer)element).intValue();
return(((i%2)==0)?
true:
false);
--s:
Listbasic-->
subsetsource="
subset>
--B:
Listwithcount-->
--C:
Listwithstart-->
13"
start="
--D:
Listwithid-->
subsetid="
mySubset"
%>
%=i.next()%>
%}%>
ListwithDecider-->
decider="
myDecider"
数据标签
@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
定义模版目录
theme
定义主题的名字
template
定义模版名字
JavaScript相关属性:
onclick
simple
htmljavascriptonclick属性
ondbclick
htmljavascriptondbclick属性
onmousedown
htmljavascriptonmousedown属性
onmouseup
htmljavascriptonmouseup属性
onmouseover
htmljavascriptonmouseover属性
onmouseout
htmljavascriptonmouseout属性
onfocus
htmljavascriptonfocus属性
onblur
htmljavascriptonblur属性
onkeypress
htmljavascriptonkeypress属性
onkeyup
htmljavascriptonkeyup属性
onkeydown
htmljavascriptonkeydown属性
onselect
htmljavascriptonselect属性
onchange
htmljavascriptonchange属性
Tooltip相关属性:
tooltip
none
为指定的组件设置Tooltip
jsTooltipEnabled
false
使用js表示tooltip
tooltipIcon
/struts/static/tooltip/tooltip.gif
指向tooltip图表的URL
tooltipDelay
500
多长时间后显示Tooltip
key
这个输入字段对应的属性,用来自动设置name,label和value
通用属性:
cssClass
定义htmlclass属性
cssStyle
定义htmlstyle属性
title
定义htmltitle属性
disabled
定义htmldisabled属性
label
xhtml
定义form字段的标签
labelPosition
定义标签在Form中的位置,从左从上计算
requiredPosition
定义必须的标签在Form中的位置,从左从上计算
name
定义form字段的name映射
required
在label上添加一个*
tabIndex
定义htmltabIndex属性
Object
定义form字段的值
对于name和value的说明:
name用来说明Form字段的名字,和Action类的属性对应。
value用来记录Form字段的值,和Action类中属性的值对应。
所以在修改一个字段的内容的时候应该使用如下的标签:
formaction="
updateAddress"
textfieldlabel="
PostalCode"
name="
postalCode"
%{postalCode}"
form>
但是,由于name和value的关系,struts2标准标签可以自动对应,所以也可以使用如下标签:
UI标签说明:
Form部分
autocompleter
checkbox
checkboxlist
combobox
datetimepicker
doubleselect
head
file
form
hidden
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"
loginUrl"
url>
%{loginUrl}"
Name"
passwordlabel="
Password"
password"
submit>
reset>
这里<
,<
textfield>
pass