`

WebWork标签库

 
阅读更多

一、数据标签

       数据标签可以从值栈中获取数据之余,还可以将变量和对象存储于值栈中。

1property标签

       功能:输出OGNL表达式的值

       属性:

l         value

[Object]进行求值的表达式,如果未指定该属性,则将被设定为top

l         default

[String]如果依据value无法得到值,则使用default指定的默认值

l         escape

[Boolean]确定是否将输出的内容进行HTML转义

2set标签

       功能:用于对值栈中的表达式进行求值,并将结果赋给特定作用域中的某个变量名。

       属性:

l         name        

[String]在一个指定的作用域内被赋值的变量名

l         value

[Object]希望用于赋值的表达式

l         scope

[String]可选的值为:applicationsessionrequestpagedefault。默认(default)即action contextset标签将对象放置于action context中。其他4种作用域直接对应于servlet应用程序的4个作用域。

       范例:使用property标签访问存储在session中的User对象的多个字段:

       <ww:property value=”#session[‘user’].username”/>

       <ww:property value=”#session[‘user’].age”/>

       <ww:property value=”#session[‘user’].address”/>

       但每次都重复使用#session[‘user’],更好的做法是定义一个临时变量:

       <ww:set name=”user” value=”#session[‘user’]”/>

       <ww:property value=”#user.username”/>

       <ww:property value=”#user.age”/>

       <ww:property value=”#user.address”/>

3push标签

       功能:将对象的引用压入值栈,当需要围绕单个对象做大量操作的时候,可以将对象压入值栈之后直接对其进行操作。

       属性:

l         value

[Object]需要压入值栈的值所对应的表达式

范例:上例也可以进行如下操作:

<ww:set name="user" value="#session['user']"/>

    <ww:push value="#user">

       <ww:property value="username"/><br>

       <ww:property value="email"/><br>

       <ww:property value="address"/><br>

    </ww:push>

再如:用同一个页面输出不同实例的属性

Test_push_include1.jsp

<%@ taglib prefix="ww" uri="webwork" %>

<html>

    <head>

       <title>Name Page</title>

    </head>

    <body>

    <ww:set name="user1" value="#session['user']"/>

    <ww:push value="#user1">

       <ww:include value="push_include.jsp"/>

    </ww:push>

      

    </body>

</html>

Test_push_include2.jsp

<%@ taglib prefix="ww" uri="webwork" %>

<html>

    <head>

       <title>Name Page</title>

    </head>

    <body>

    <ww:set name="user2" value="#session['user']"/>

    <ww:push value="#user2">

       <jsp:include page="push_include.jsp"/>

    </ww:push>

      

    </body>

</html>

Push_include.jsp

<%@ taglib prefix="ww" uri="webwork" %>

 

<html>

    <head>

       <title>Reg page</title>

    </head>

    <body>

       <H3>Login Info</H3>

           <ww:property value="username"/><br>

           <ww:property value="email"/><br>

           <ww:property value="address"/><br>

    </body>

</html>

 

4bean标签

       功能:创建简单的JavaBean,并将其压入值栈中,在bean标签的起始与结束标记之间,除了可以将JavaBean压入值栈之外,还可以任意地把JavaBean赋值给某个变量,以便让其在action context中能够访问,实现类似set标签的功能。

       属性:

l         name

[String]被创建的bean对应的包和类名

l         id

[String]如果需要在bean标签的范围之外引用bean对象,那么就应当通过id属性设置引用名称

       参数:

              bean标签可以包含param标签,可以通过提供的参数定制标签,设定bean的属性。

       范例:

<ww:bean name="com.example.User" id="user">

    <ww:param name="username">admin</ww:param>

    <ww:param name="email">admin@example.com</ww:param>

    <ww:param name="address">InnerMongolia Huhehot</ww:param>

    <H3>Inner:</H3>

    Username:<ww:property value="username"/><br>

    E-mail:<ww:property value="email"/><br>

    Address:<ww:property value="address"/><br>

</ww:bean>

<H3>Out:</H3>

Username:<ww:property value="#user.username"/><br>

E-Mail:<ww:property value="#user.email"/><br>

Address:<ww:property value="#user.address"/><br>

 

<ww:bean name="com.opensymphony.webwork.util.Counter" id="counter">

    <ww:param name="last" value="100"/>

</ww:bean>

<ww:iterator value="#counter">

    <li><ww:property/></li>

</ww:iterator>

5action标签

       功能:在JSP页面中执行action并访问相应的数据。默认情况下,action标签并不执行actionresult,这样可以让那些可能呈现另外一个不同页面的action能够正常工作。

       属性:

l         name

[String]action

l         namespace

[String]actionnamespace,默认值为当前页面所在的namespace

l         id

[String]引用action bean所需的名称,以便在页面后面的部分引用

l         executeResult

[Boolean]当设置为true时,会执行action对应的result,默认为false

       范例:

<%@ taglib prefix="ww" uri="webwork" %>

<html>

    <head>

       <title>List Page</title>

    </head>

    <body>

       <H2>User Registor:</H2>

       <ww:action name="reglist" executeResult="true"/>

    </body>

</html>

二、控制标签

1iterator标签

       功能:循环遍历任何集合对象,包括CollectionMapEnumerationIteratorarray(数组),同时也可以在action context中定义一个变量,用于确定与当前循环状态相关的基本信息。

       属性:

l         value

[CollectionMapEnumerationIteratorarray]被循环遍历的对象

l         status

[String]如果设置了该属性,IteratorStatus对象就会被放置在action context中。

IteratorStatus源代码:

package com.opensymphony.webwork.views.jsp;

 

public class IteratorStatus {

    protected StatusState state;

 

    public IteratorStatus(StatusState aState) {

        state = aState;

    }

 

    public int getCount() {

        return state.index + 1;

    }

 

    public boolean isEven() {

        return ((state.index + 1) % 2) == 0;

    }

 

    public boolean isFirst() {

        return state.index == 0;

    }

 

    public int getIndex() {

        return state.index;

    }

 

    public boolean isLast() {

        return state.last;

    }

 

    public boolean isOdd() {

        return ((state.index + 1) % 2) == 1;

    }

 

    public int modulus(int operand) {

        return (state.index + 1) % operand;

    }

 

    public static class StatusState {

        boolean last = false;

        int index = 0;

 

        public void setLast(boolean isLast) {

            last = isLast;

        }

 

        public void next() {

            index++;

        }

    }

}

       范例:使用IteratorStatus

<%@ taglib prefix="ww" uri="webwork" %>

<html>

    <head>

       <title>List Page</title>

    </head>

    <body>

       <table>

       <ww:iterator value="users" status="rowstatus">  

           <ww:if test="#rowstatus.even">        

           <tr>

              <td><ww:property value="username"/></td>

              <td><ww:property value="email"/></td>

              <td><ww:property value="address"/></td>  

           </tr> 

           </ww:if>

           <ww:else>

           <tr>

              <td><font color="red"><ww:property value="username"/></font></td>

              <td><font color="red"><ww:property value="email"/></font></td>

              <td><font color="red"><ww:property value="address"/></font></td>  

           </tr>

           </ww:else>   

       </ww:iterator>

       </table>

    </body>

</html>

2if标签和else标签

       功能:控制输出呈现,可以单独使用if标签,也可以结合elseif标签和else标签一起使用,else标签没有任何属性,而ifelseif只有一个属性test

       属性:

l         test

[Boolean]用于求值并返回truefalse的布尔表达式。

       范例:

<%@ taglib prefix="ww" uri="webwork" %>

<html>

    <head>

       <title>List Page</title>

    </head>

    <body>

       <table>

       <ww:iterator value="users" status="rowstatus">  

           <ww:if test="#rowstatus.first">       

           <tr bgcolor="blue">

              <td><ww:property value="username"/></td>

              <td><ww:property value="email"/></td>

              <td><ww:property value="address"/></td>  

           </tr> 

           </ww:if>

           <ww:elseif test="#rowstatus.last">

           <tr bgcolor="yellow">

              <td><ww:property value="username"/></td>

              <td><ww:property value="email"/></td>

              <td><ww:property value="address"/></td>  

           </tr>

           </ww:elseif>

           <ww:elseif test="#rowstatus.odd">

           <tr bgcolor="green">

              <td><ww:property value="username"/></font></td>

              <td><ww:property value="email"/></td>

              <td><ww:property value="address"/></td>  

           </tr>

           </ww:elseif> 

           <ww:else>

           <tr bgcolor="gray">

              <td><ww:property value="username"/></font></td>

              <td><ww:property value="email"/></td>

              <td><ww:property value="address"/></td>  

           </tr>

           </ww:else>   

       </ww:iterator>

    </body>

</html>

三、杂项标签

1include标签

       功能:可参数化的include标签,与WebWork集成在一起提供更多的高级特性。

       属性:

l         value

[String]页面名称、actionservlet或任何可引用的URL

       优点:

ü         提供对值栈的访问能力

ü         提供更具扩展性的参数模型

如:包含一个页面,同时利用值栈对该页面中使用了%{…}符号的内容进行求值。也可以使用<ww:param>标签对include标签增加参数,而param标签同样以来于值栈,比<jsp:include>标签更易于使用。

2URL标签

       功能:生成使用相对路径或者绝对路径的URL,处理参数,以及对URL进行编码,以便让没有启用cookie的浏览器使用。

       属性:

l         value

[String]基本的URL,用来生成URL的基本信息,默认值为生成当前页面的URL

l         includeParams

[String]allgetnone中选择参数,默认为get。在默认情况下,WebWork包含当前页面的所有查询字符串;如果不希望包含任何参数,那么将该属性设置为none;可以通过设置为all,使得所有参数都可用于URL的生成,包括通过post提交的参数。

l         id

[String]如果指定了该属性,那么URL将不会输出,而是会保存于action context,以作后用。

l         includeContext

[Boolean]如果为true,那么生成的URL前面会加上应用程序所在的上下文(context)路径,默认为true

l         encode

[Boolean]如果访问者并没有启用cookie,那么将会在URL中增加session ID

l         scheme

[String]可以指定协议,默认为当前的设置(HTTP或者HTTPS)。WebWork使用默认的80端口监听HTTP请求,而使用443端口监听HTTPS端口,如果要更改,可以在webwork.properties文件中重新定义。

webwork.url.http.port = 8080

webwork.url.https.port = 8081

       范例:

URL标签

结果

<ww:url/>

/7_tag_url/

<ww:url scheme="ftp"/>

ftp://127.0.0.1/7_tag_url/

<ww:url value="www.sina.com.cn"/>

www.sina.com.cn

<ww:url value="www.google.cn/search">

    <ww:param name="q">java</ww:param>

</ww:url>

www.google.cn/search?q=java

<ww:url value="http://iask.com/s" id="java">

    <ww:param name="k">java</ww:param>

</ww:url>

<a href="<ww:property value="#java"/>">

search java in sina

</a>

<a href="http://iask.com/s?k=java">

search java in sina

</a>

<ww:url value="/test.html" id="test"/>

    <a href="

<ww:property value="#test"/>">

Test1

</a>

<a href="/7_tag_url/test.html">Test1</a>

 

<ww:url value="/test.html" id="test" includeContext="false"/>

    <a href="

<ww:property value="#test"/>">

Test1

</a>

<a href="/test.html">Test1</a>

3i18ntext标签

       国际化支持

Ø         text标签

功能:显示特定语言的文本,是基于键查询的标签

属性:

l         name

[String]用于在ResourceBundle中进行查找的键。

l         id

[String]如果设置了该属性,则文本内容将会存储于action context中,可以通过属性值的名称进行引用。

l         value0

[Object]参数1

l         value1

[Object]参数2

l         value2

[Object]参数3

l         value3

[Object]参数4

Ø         i18n标签

功能:将资源包的内容压入栈中,可以在标签内部访问与资源包相关的i18n的资源。

属性:

l         name

[String]资源包的名称。

4param标签

       功能:对其他标签提供作用。

       属性:

l         name

[String]应用于父标签的参数名称

l         value

[Object]一个OGNL表达式,结果为被应用的值。

       范例:

       <ww:param name="username" value="'admin'"/>

       <ww:param name="username">admin</ww:param>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Webwork标签库CHM

    博文链接:https://echolee.iteye.com/blog/176785

    WebWork标签手册

    WebWork,标签,手册WebWork,标签,手册

    webwork

    学习webwork的好东东

    Webwork2_guide

    一个webwork2的指南

    培训教程-WebWork ppt(内附源码)

    在公司内部进行WebWork培训时,做的ppt和演示程序。 目录: WebWork入门 WebWork原理 WebWork标签库和EL WebWork实例

    Struts2 WebWork 2.0 Tags API 中文文档 [CHM]

    webwork提供了一套不依赖于显示层技术的标签库。这一章我们将概括性的描述每一个标签, 比如此标签支持的属性,标签的行为等等。 大多数的标签都可以用于所有的模板语言(参考 JSP Tags, Velocity Tags,和 ...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第10章 Struts 2的标签库,第11章 Struts 2的Ajax支持,第12章 使用FreeMarker充当表现层,第13章 整合Spring,第14章 整合JSF,第15章 整合SiteMesh,第16章 整合JasperReports,第17章 整合JFreeChart,第18章 ...

    struts2标签库.html

    webwork提供了一套不依赖于显示层技术的标签库。这一章我们将概括性的描述每一个标签, 比如此标签支持的属性,标签的行为等等。 大多数的标签都可以用于所有的模板语言(参考 JSP Tags, Velocity Tags,和 ...

    webwork培训教程

    webwork入门,原理,标签库和EL,实例

    Struts 2权威指南:基于WebWork核心的MVC开发

    — Model 1和Model 2 — MVC思想 — MVC模式的优势 — 常用MVC框架及其特征 — Struts 1的基本结构及其存在的问题 — WebWork的基本结构 — Struts 2的起源 — Struts 2的框架架构 — Struts 2的标签库 — Struts 2...

    siteMesh例子

    SiteMesh简介: SiteMesh是一个Web页面布局... WebWork把全部值栈数据都保存在请求attribute中, 这意味着如果想显示值栈(或ActionContext)中的数据, 只需使用WebWork附带的标准标签库, 就这么简单!那来看完本文吧。

    sitemesh 完美合集 4个资料和jar文件

    Sitemesh简介: SiteMesh是一个Web页面布局... WebWork把全部值栈数据都保存在请求attribute中, 这意味着如果想显示值栈(或ActionContext)中的数据, 只需使用WebWork附带的标准标签库, 就这么简单!那来看完本文吧。

    sitemesh

    SiteMesh是一个Web页面布局修饰... WebWork把全部值栈数据都保存在请求attribute中, 这意味着如果想显示值栈(或ActionContext)中的数据, 只需使用WebWork附带的标准标签库, 就这么简单!内含学习文档和完整例子。

    Struts2权威指南

    第1章 Struts 2概述1  1.1 MVC思想概述2  1.1.1 Web技术的发展2 ... 1.3.3 Strut 2的标签库18  1.3.4 Struts 2的控制器组件19  1.4 Struts 2与Struts 1的对比20  1.5 WebWork和Struts 2对比21  1.6 本章小结22

    struts2-指南

    — Web 应用的发展 — Model 1 和Model 2 — MVC 思想 — MVC 模式的优势 — 常用MVC 框架及其特征 — Struts 1 的...Struts 2 的标签库 — Struts 2 的控制器组件 — Struts 1 和Struts 2 的对比

    Struts1-2和WebWrok,JSTL帮助文档及快书入门图书

    Struts 1-2,帮助文档,及Jslt帮助文档,Webwork图书,可以帮助我们掌握新技术Struts2.0的帮手,并使我们了解和掌握Struts和Jstl标签库

Global site tag (gtag.js) - Google Analytics