8WebWork标签库.docx
《8WebWork标签库.docx》由会员分享,可在线阅读,更多相关《8WebWork标签库.docx(15页珍藏版)》请在冰豆网上搜索。
8WebWork标签库
WebWork标签库
一、数据标签
数据标签可以从值栈中获取数据之余,还可以将变量和对象存储于值栈中。
1、property标签
功能:
输出OGNL表达式的值
属性:
●value
[Object]进行求值的表达式,如果未指定该属性,则将被设定为top
●default
[String]如果依据value无法得到值,则使用default指定的默认值
●escape
[Boolean]确定是否将输出的内容进行HTML转义
2、set标签
功能:
用于对值栈中的表达式进行求值,并将结果赋给特定作用域中的某个变量名。
属性:
●name
[String]在一个指定的作用域内被赋值的变量名
●value
[Object]希望用于赋值的表达式
●scope
[String]可选的值为:
application、session、request、page或default。
默认(default)即actioncontext,set标签将对象放置于actioncontext中。
其他4种作用域直接对应于servlet应用程序的4个作用域。
范例:
使用property标签访问存储在session中的User对象的多个字段:
propertyvalue=”#session[‘user’].username”/>
propertyvalue=”#session[‘user’].age”/>
propertyvalue=”#session[‘user’].address”/>
但每次都重复使用#session[‘user’],更好的做法是定义一个临时变量:
setname=”user”value=”#session[‘user’]”/>
propertyvalue=”#user.username”/>
propertyvalue=”#user.age”/>
propertyvalue=”#user.address”/>
3、push标签
功能:
将对象的引用压入值栈,当需要围绕单个对象做大量操作的时候,可以将对象压入值栈之后直接对其进行操作。
属性:
●value
[Object]需要压入值栈的值所对应的表达式
范例:
上例也可以进行如下操作:
setname="user"value="#session['user']"/>
pushvalue="#user">
propertyvalue="username"/>
propertyvalue="email"/>
propertyvalue="address"/>
push>
再如:
用同一个页面输出不同实例的属性
Test_push_include1.jsp
<%@taglibprefix="ww"uri="webwork"%>
NamePage
setname="user1"value="#session['user']"/>
pushvalue="#user1">
includevalue="push_include.jsp"/>
push>
Test_push_include2.jsp
<%@taglibprefix="ww"uri="webwork"%>
NamePage
setname="user2"value="#session['user']"/>
pushvalue="#user2">
includepage="push_include.jsp"/>
push>
Push_include.jsp
<%@taglibprefix="ww"uri="webwork"%>
Regpage
LoginInfo
propertyvalue="username"/>
propertyvalue="email"/>
propertyvalue="address"/>
4、bean标签
功能:
创建简单的JavaBean,并将其压入值栈中,在bean标签的起始与结束标记之间,除了可以将JavaBean压入值栈之外,还可以任意地把JavaBean赋值给某个变量,以便让其在actioncontext中能够访问,实现类似set标签的功能。
属性:
●name
[String]被创建的bean对应的包和类名
●id
[String]如果需要在bean标签的范围之外引用bean对象,那么就应当通过id属性设置引用名称
参数:
bean标签可以包含param标签,可以通过提供的参数定制标签,设定bean的属性。
范例:
beanname="com.example.User"id="user">
paramname="username">admin
param>
paramname="email">admin@
param>
paramname="address">InnerMongoliaHuhehot
param>
Inner:
Username:
propertyvalue="username"/>
E-mail:
propertyvalue="email"/>
Address:
propertyvalue="address"/>
bean>
Out:
Username:
propertyvalue="#user.username"/>
E-Mail:
propertyvalue="#user.email"/>
Address:
propertyvalue="#user.address"/>
beanname="com.opensymphony.webwork.util.Counter"id="counter">
paramname="last"value="100"/>
bean>
iteratorvalue="#counter">
property/>
iterator>
5、action标签
功能:
在JSP页面中执行action并访问相应的数据。
默认情况下,action标签并不执行action的result,这样可以让那些可能呈现另外一个不同页面的action能够正常工作。
属性:
●name
[String]action名
●namespace
[String]action的namespace,默认值为当前页面所在的namespace
●id
[String]引用actionbean所需的名称,以便在页面后面的部分引用
●executeResult
[Boolean]当设置为true时,会执行action对应的result,默认为false。
范例:
<%@taglibprefix="ww"uri="webwork"%>
ListPage
UserRegistor:
actionname="reglist"executeResult="true"/>
二、控制标签
1、iterator标签
功能:
循环遍历任何集合对象,包括Collection、Map、Enumeration、Iterator及array(数组),同时也可以在actioncontext中定义一个变量,用于确定与当前循环状态相关的基本信息。
属性:
●value
[Collection、Map、Enumeration、Iterator或array]被循环遍历的对象
●status
[String]如果设置了该属性,IteratorStatus对象就会被放置在actioncontext中。
IteratorStatus源代码:
packagecom.opensymphony.webwork.views.jsp;
publicclassIteratorStatus{
protectedStatusStatestate;
publicIteratorStatus(StatusStateaState){
state=aState;
}
publicintgetCount(){
returnstate.index+1;
}
publicbooleanisEven(){
return((state.index+1)%2)==0;
}
publicbooleanisFirst(){
returnstate.index==0;
}
publicintgetIndex(){
returnstate.index;
}
publicbooleanisLast(){
returnstate.last;
}
publicbooleanisOdd(){
return((state.index+1)%2)==1;
}
publicintmodulus(intoperand){
return(state.index+1)%operand;
}
publicstaticclassStatusState{
booleanlast=false;
intindex=0;
publicvoidsetLast(booleanisLast){
last=isLast;
}
publicvoidnext(){
index++;
}
}
}
范例:
使用IteratorStatus。
<%@taglibprefix="ww"uri="webwork"%>
ListPage
iteratorvalue="users"status="rowstatus">
iftest="#rowstatus.even">
propertyvalue="username"/> | propertyvalue="email"/> | propertyvalue="address"/> |
if>
else>
propertyvalue="username"/> | propertyvalue="email"/> | propertyvalue="address"/> |
else>
iterator>
2、if标签和else标签
功能:
控制输出呈现,可以单独使用if标签,也可以结合elseif标签和else标签一起使用,else标签没有任何属性,而if和elseif只有一个属性test。
属性:
●test
[Boolean]用于求值并返回true或false的布尔表达式。
范例:
<%@taglibprefix="ww"uri="webwork"%>
ListPage
iteratorvalue="users"status="rowstatus">
iftest="#rowstatus.first">
propertyvalue="username"/> |
propertyvalue="email"/> |
propertyvalue="address"/> | if>
elseiftest="#rowstatus.last">
propertyvalue="username"/> |
propertyvalue="email"/> | propertyvalue="address"/> | elseif>
elseiftest="#rowstatus.odd">
propertyvalue="username"/> |
propertyvalue="email"/> | propertyvalue="address"/> | elseif>
else>
propertyvalue="username"/> |
propertyvalue="email"/> | propertyvalue="address"/> | else>
iterator>
三、杂项标签
1、include标签
功能:
可参数化的include标签,与WebWork集成在一起提供更多的高级特性。
属性:
●value
[String]页面名称、action、servlet或任何可引用的URL。
优点:
✓提供对值栈的访问能力
✓提供更具扩展性的参数模型
如:
包含一个页面,同时利用值栈对该页面中使用了%{…}符号的内容进行求值。
也可以使用param>标签对include标签增加参数,而param标签同样以来于值栈,比include>标签更易于使用。
2、URL标签
功能:
生成使用相对路径或者绝对路径的URL,处理参数,以及对URL进行编码,以便让没有启用cookie的浏览器使用。
属性:
●value
[String]基本的URL,用来生成URL的基本信息,默认值为生成当前页面的URL。
●includeParams
[String]从all、get或none中选择参数,默认为get。
在默认情况下,WebWork包含当前页面的所有查询字符串;如果不希望包含任何参数,那么将该属性设置为none;可以通过设置为all,使得所有参数都可用于URL的生成,包括通过post提交的参数。
●id
[String]如果指定了该属性,那么URL将不会输出,而是会保存于actioncontext,以作后用。
●includeContext
[Boolean]如果为true,那么生成的URL前面会加上应用程序所在的上下文(context)路径,默认为true。
●encode
[Boolean]如果访问者并没有启用cookie,那么将会在URL中增加sessionID。
●scheme
[String]可以指定协议,默认为当前的设置(HTTP或者HTTPS)。
WebWork使用默认的80端口监听HTTP请求,而使用443端口监听HTTPS端口,如果要更改,可以在webwork.properties文件中重新定义。
webwork.url.http.port=8080
webwork.url.https.port=8081
范例:
URL标签
结果
url/>
/7_tag_url/
urlscheme="ftp"/>
ftp:
//127.0.0.1/7_tag_url/
urlvalue=""/>
urlvalue="
paramname="q">java
param>
url>
urlvalue="id="java">
paramname="k">java
param>
url>
propertyvalue="#java"/>">
searchjavainsina
searchjavainsina
urlvalue="/test.html"id="test"/>
propertyvalue="#test"/>">
Test1
Test1
urlvalue="/test.html"id="test"includeContext="false"/>
propertyvalue="#test"/>">
Test1
Test1
3、i18n和text标签
国际化支持
Øtext标签
功能:
显示特定语言的文本,是基于键查询的标签
属性:
●name
[String]用于在ResourceBundle中进行查找的键。
●id
[String]如果设置了该属性,则文本内容将会存储于actioncontext中,可以通过属性值的名称进行引用。
●value0
[Object]参数1
●value1
[Object]参数2
●value2
[Object]参数3
●value3
[Object]参数4
Øi18n标签
功能:
将资源包的内容压入栈中,可以在标签内部访问与资源包相关的i18n的资源。
属性:
●name
[String]资源包的名称。
4、param标签
功能:
对其他标签提供作用。
属性:
●name
[String]应用于父标签的参数名称
●value
[Object]一个OGNL表达式,结果为被应用的值。
范例:
paramname="username"value="'admin'"/>
paramname="username">admin
param>
展开阅读全文
相关搜索