`

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

    Webwork标签库CHM是一个关于WebWork框架中标签库的参考文档,主要涵盖了WebWork框架中用于构建动态网页的自定义标签的相关知识。WebWork是一个Java Web开发框架,它简化了MVC(模型-视图-控制器)模式的实现,提高了...

    WebWork标签手册

    ### WebWork标签手册详解 #### 数据标签:连接前端与后端的桥梁 WebWork框架作为Struts的一个替代品,提供了一系列强大的标签库,用于简化Web应用的开发过程。其中,数据标签尤其关键,它们不仅能够从值栈中提取...

    webwork标签

    WebWork标签库分为多个类别,包括通用标签、组件化标签、流程控制标签、迭代标签、UI标签、VUI标签以及国际化支持标签。 1. **通用标签**: - `&lt;ww:property&gt;`:用于获取结果的属性值,如果未指定值,将从值栈顶部...

    webwork

    7. **标签库**:WebWork 自带一套丰富的标签库,可以方便地在JSP页面中使用,减少硬编码,提高开发效率。 8. **持久化支持**:WebWork 可以与各种持久化框架如Hibernate、iBatis等集成,方便进行数据库操作。 9. *...

    Webwork2_guide

    Webwork2是一个基于Java的开源框架,主要用于构建动态、交互式的Web应用程序。它以其强大的MVC(模型-视图-控制器)架构而闻名,能够帮助开发者有效地组织代码,提高开发效率,同时保持良好的可维护性和扩展性。...

    webwork 标签手册

    其中,WebWork标签库作为框架的一部分,提供了丰富的自定义标签,可以帮助开发者更方便快捷地实现页面逻辑。本文档将详细介绍WebWork中的几个核心标签,包括`data`标签、`property`标签、`set`标签、`push`标签以及`...

    WebWork ww标签

    WebWork WW标签库是专门为WebWork框架设计的一组自定义标签,用于在JSP页面上进行动态数据展示、控制流操作和表单元素渲染。WW标签库提供了丰富的标签,例如`&lt;ww:if&gt;`、`&lt;ww:iterator&gt;`、`&lt;ww:set&gt;`、`&lt;ww:property&gt;...

    webwork中使用datepicker标签来选择日期

    WebWork标签库提供了一个`ww:datepicker`标签,它允许我们方便地与jQuery UI的Datepicker集成。下面是一个简单的例子: ```jsp &lt;%@ taglib prefix="ww" uri="http://www.opensymphony.com/webwork" %&gt; ... 选择...

    webwork操作手册.doc

    这有助于Web服务器正确解析WebWork标签库。 ##### 1.4 配置web.xml `web.xml`是Web应用程序的核心配置文件之一,用于定义前端控制器(在WebWork中为Filter)、servlet映射等。在配置`web.xml`时,需要添加WebWork...

    webwork标签的使用和介绍

    以下是对WebWork标签的详细介绍: 1. **通用标签**: - `&lt;ww:property&gt;`:用于获取ActionResult中的属性值,例如`&lt;ww:property name="pname" /&gt;`显示Person对象的pname属性值。 - `&lt;ww:param&gt;`:设置父标签的参数...

    webwork培训教程

    #### 二、WebWork标签库和EL WebWork的标签库和表达式语言(EL)是其高效开发的关键。 - **WebWork标签库**:提供了一系列预定义的HTML标签,简化了页面的开发过程,如数据绑定、条件判断和循环等。 - **表达式...

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

    3. **WebWork标签库和EL**: WebWork提供了丰富的JSP标签库,如`s:form`、`s:textfield`等,简化了视图层的开发。这些标签与ValueStack配合,可以直接访问模型数据。EL是一种简洁的表达式语言,用于在JSP中动态地...

    基于JSP+WebWork+iBATIS的小系统

    4. **WebWork标签库**:提供了一系列与WebWork集成的JSP标签,如`&lt;ww:form&gt;`, `&lt;ww:property&gt;`等,简化视图层的开发。 **iBATIS**: 1. **iBATIS介绍**:iBATIS是一个持久层框架,它使Java代码与SQL语句解耦,通过...

    wework深入浅出

    3. JSP页面中使用WebWork标签库时,需在页面头部声明: ``` &lt;%@taglib prefix="ww" uri="/webwork"%&gt; ``` 4. 默认情况下,WebWork支持altSyntax语法,允许使用`%{}`表达式。 5. 若要使用Freemarker模板引擎,需在...

    WEBWORK

    2. **Taglib** 配置:`jsp-config` 部分定义了一个 JSP 标签库(Taglib),即 WebWork 的标签库。`taglib-uri` 指定标签库的唯一标识符,`taglib-location` 指定包含 TLD(Tag Library Descriptor)的 JAR 文件位置...

Global site tag (gtag.js) - Google Analytics