`
yonglongwang
  • 浏览: 7081 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

WebWork 2 : 什么是WebWork

阅读更多
WebWork是一个Java web-application开发框架(development framework). 它专注于提高开发者的生产效率并简化代码. WebWork构建在XWork之上,
1 XWork提供了普通的(generic)命令模式(command pattern)框架
2 同时也是一个反转控制(Inversion of Control, IoC)容器.

除了上述特性外, WebWork还为其它功能如
1 创建可复用的用户界面模版(UI template)
2 表单(form)控制
3 用户界面主题(UI theme)
4 国际化
5 表单参数与JavaBean的动态映射
6 健壮的客户端及服务器端校验(validation)

提供了强有力的支持.

WebWork 2 : 什么是WebWork

WebWork是一个强大的基于Web的MVC框架, 它构建在一个命令模式框架XWork之上. WebWork的特性包括
1  :用于处理或代理 请求的分发器(Dispatcher)

2  :支持多种视图技术(JSP, Velocity, JasperReports, XML, FreeMarker)的结果类型

3  :一个小而强大的JSP标签库和Velocity宏定义

4  :分发器调用XWork活动来访问和操作模型(Model)并为视图显示模型数据提供方便的途径.

WebWork真正的优势在于它强调简洁和协作能力的根本理念. 使用WebWork将有助于
1 :最小化代码

2 :允许开发人员更多的关注业务逻辑(business logic)和建模(modeling)

3 :不是诸如编写Servlet之类的事情.

一 :特性

1 :灵活的校验(validation)框架, 允许使用XML文件定义校验并通过截取器(Interceptor)在运行时自动应用到活动类(Action class), 从而达到校验与活动类之间的完全解藕(decoupled). 新版本还支持客户端校验.

2 :类型转化(Type conversion)可以很容易的将对象从一个类转换成另一个类型。

3 :强大的表达式语言(Expression Language, EL)建立在OGNL基础之上, 允许:
1 遍历动态对象图
2 执行对象方法
3 使用值栈(ValueStack)实现对多个JavaBean属性的透明访问
4 Webwork也可以使用JSTL.

4 :使用反转控制(Inversion of Control, IoC)管理组件(component)生命周期和依赖关系, 不需要编写注册类创建组件, 组件客户也不需要主动获取组件实例(instance).

5 :Velocity模版, 使得开发人员可以很容易的定制Web页面的外观(look & feel).

6 :截取器(Interceptors)可以动态截取活动(Action)执行前后的处理过程, 这
1 简化了活动的代码
2 提高了代码复用能力

7 :支持国际化(I18n).

8 :可以方便的与其他第三方软件集成, 包括Hibernate, Spring, Pico, Sitemesh.

9 :支持多种视图技术如:
1 JSP
2 Velocity
3 FreeMarker
4 JasperReports
5 XML


10 :使用包(Packages)和名空间(Namespaces)管理数以百计的活动.


二 :背景与目的
WebWork是一个开放源代码项目, 目标是为在短时间内构建复杂网站提供易于理解和维护的工具及开发框架. Java是一个平台以及基于该平台的语言, 尽管他支持although it supports many others as the language in which systems are built, such as JavaScript and XML.

WebWork在构架上基于最佳实践和那些已被证实有价值的设计模式. 它还基于一个强烈的动机: 尽可能的简单, 并具有维护上的灵活性(这实际上是一个困难的平衡).

它也鼓励用户使用恰当的, 符合需要的方式工作. [It also encourages you, as a user, to do things the way you seem fit for your needs.] WebWork能以多种方式配置和使用, 哪种方式更适合于你依赖于使用环境. 下面是一个例子, WebWork支持多种不同的HTML生成技术如:
1 JSP
2 Velocity模版引擎
3 XSLT

它们之间在理念上和技术上都存在很大的差别, 但都能为WebWork所用, 同时, 不同的用户确实需要这些不同的方式. "你不能那么做"是我们尽可能避免的一句话, 而"我们不能"往往是因为有另一个更好, 更适合的工具.

三 :WebWork对MVC Model-1和Model-2的支持

Web应用开发框架的最重要的一个任务是支持
1 逻辑
2 内容
3 表现

相分离的理念. 如果没有做到这一点, 通常会导致维护上的问题, 如果开发团队结构复杂(因为每一个团队成员通常只负责应用的某一方面(aspect)), 还会使应用的开发变得更加困难. 达到分离目的的一般方法是采用MVC(Model-View-Controller)设计模式. 该模式鼓励使用分离的代码来处理:
1 模型(model, 即 " 业务逻辑 " )
2 控制器(controller, 即 " 应用逻辑 " )
3 视图(view).

这样分离之后, 下一个问题是:
控制器的代码与表现部分如何交互

有两种常用的设计模型可以做到这一点, 它们分别被称为Model-1和Model-2. 这两种模型将在下文描述.

Model-1 :
Model-1方式的基本想法是在表示层(presentation layer)如JSP或模版中调用控制器代码. 如果你正在使用JSP, 这意味着你可以通过两种方式执行你的WebWork活动:
1 使用 " webwork:action " 标签调用执行
2 使用 " webwork:bean " 标签像调用JavaBeans一样执行活动.

Model-2 :
在Model-2方式中
1 哪些代码调用控制器
2 哪些视图进行展示

由第三方决定, 通常是一个servlet分发器. 分发器解码HTTP请求中的URL, 然后决定执行哪些代码. 一个包含控制器代码的Java对象被获取并执行, 从而完成对某个应用逻辑和业务逻辑的处理. 当执行结束后, 分发器将请求转交(forward)给一个视图处理器(如一个JSP), 它使用前一个处理的数据绘制结果视图.

四 :如何选择使用?
由于
1 控制器逻辑
2 表现生成

完全解藕, 使得根据执行情况来显示不同结果页面成为可能. 例如, 如果处理出现错误就可以显示一个错误页面而不显示正常的结果页面.

Model-1方式的优点如下.
1 :不需要建立代码与表示之间的映射关系.
2 :易于察看JSP或模版中执行了哪些代码.
3 :如果页面中的一部分要求某个处理过程只允许成功(否则系统失灵),
          那么这些代码调用和表现部分的代码(如JSP标签库和HTML)不必分离到新的活动和JSP页面中处理过程. 这样可以提高性能和可读性.

Model-2方式的优点如下.
1 :代码和表现彻底分离. 同一个表现页面可以被多个不同的活动复用,
      这些活动可以访问不同的数据但使用相同的方式展示.

2 :如果一个活动可能导致多种状态, 如 " 成功 " ,  " 需要重新输入 " , 或 " 出现错误 " ,
      那么使用Model - 2方式可以很容易的将这些状态映射到不同的页面.



选择使用的首要原则是:
当代码仅仅是获取并显示数据(这被称为read - type code)时使用Model - 1

只要当模型是由活动或一个处理流程所改变时就应当使用Model - 2 .


OGNL是WebWork,XWork中的底层支持组件.非常强大的函数库.

转:http://www.blogjava.net/liuwentao253/archive/2006/08/21/64867.html
分享到:
评论

相关推荐

    webWork2开发指南

    WebWork2是一款基于Java的轻量级Web应用框架,它为开发者提供了强大的MVC(Model-View-Controller)架构支持,使得构建动态、数据驱动的Web应用变得更加简单和高效。这款框架在2000年代中期较为流行,是Struts的一个...

    webwork2实例源代码

    WebWork2是一个基于Java的MVC(模型-视图-控制器)框架,它在早期的J2EE开发中被广泛使用。本实例源代码提供了深入理解WebWork2工作原理和应用开发的机会。以下是对WebWork2核心知识点的详细阐述: 1. **MVC架构**...

    WebWork2配置

    WebWork2是一款基于Java的轻量级MVC(Model-View-Controller)框架,它在Web应用程序开发中起到了核心架构的作用。WebWork2是Struts的替代品,它提供了更强大的功能、更好的性能以及更优雅的API。在这个“WebWork2...

    webwork2开发指南

    WebWork2是一款基于Java的MVC(Model-View-Controller)框架,用于构建Web应用程序。在Web开发领域,它提供了一种结构化和模块化的开发方式,帮助开发者更高效地组织代码并实现业务逻辑。本指南将深入探讨WebWork2的...

    webwork2中文教程

    WebWork2是一个基于Java的轻量级Web应用框架,它为开发者提供了构建高效、可维护的Web应用程序的强大工具。在本教程中,我们将深入探讨WebWork2的核心概念、功能及其在实际开发中的应用。 WebWork2是Struts的前身,...

    webwork2官方文档中文版

    WebWork2是一款基于Java的开源MVC(Model-View-Controller)框架,它为构建企业级Web应用程序提供了强大的支持。这个“webwork2官方文档中文版”是针对开发者的重要参考资料,帮助他们理解和掌握WebWork2的核心概念...

    java私塾][Spring讲解+webwork2整合+webwork2整合全套

    根据提供的文件信息,我们可以推断出这是一篇关于Java私塾中的Spring框架讲解与WebWork2整合教程的文章。下面将围绕这些关键词展开详细的讲解。 ### Spring框架基础 #### Spring简介 Spring是一个开源框架,最初由...

    struts2与webwork2

    在探讨Struts2与WebWork2的联系与区别的过程中,我们不得不提到它们的历史渊源以及在Java Web开发领域中的地位。Struts2框架实际上可以视为WebWork2框架的继承者,两者之间的关系紧密而复杂,下面将从多个角度深入...

    webwork2个人学习总结

    Webwork2是一个基于Java的MVC(模型-视图-控制器)框架,它在Web应用程序开发中提供了一种组织和管理代码的方式。以下是对Webwork2框架的学习总结: 1. **JAR包下载与项目配置**: - 开始学习Webwork2时,首先需要...

    webwork2中文文档

    WebWork2是一个基于Java的开源MVC(Model-View-Controller)框架,用于构建Web应用程序。这个框架的设计理念是将业务逻辑、数据模型和用户界面有效地分离,从而提高开发效率和代码可维护性。WebWork2中文文档是针对...

    Webwork2_guide

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

    Webwork2开发指南

    **Webwork2 开发指南** Webwork2 是一个基于Java的开源MVC(Model-View-Controller)框架,专门用于构建动态、交互式的Web应用程序。它提供了强大的数据绑定、动作控制、异常处理以及国际化等功能,使得开发者能够...

    Struts2-Webwork2-DWR

    Struts2、Webwork2 和 DWR 是三个在 Web 开发领域中至关重要的技术,尤其在构建企业级的 WEB2.0 应用程序时。接下来,我们将详细探讨这三个技术的核心概念、工作原理以及它们之间的关系。 **Struts2** 是一个基于 ...

    Struts 2 技术详解:基于WebWork核心的MVC开发与实践

    WebWork的这些特性被集成到Struts 2中,使得Struts 2成为了一个高效且易用的MVC框架。 **Struts 2的生命周期**: 1. 用户发起HTTP请求。 2. Struts 2 框架接收到请求,解析请求参数。 3. 拦截器链开始执行,按照...

    Webwork2开发指南.pdf

    Webwork2是一款基于Java的开源框架,主要用于构建企业级的Web应用程序。这个框架以其强大的MVC(模型-视图-控制器)架构而闻名,能够帮助开发者实现高效、可维护的代码结构。OpenDoc出品的"Webwork2开发指南.pdf"是...

    WebWork docs 2 -- webWork 详细的说明文档

    WebWork docs 2 是一套完整的WebWork框架的详细说明文档,包含了开发者在使用WebWork时可能遇到的所有问题的解答。 这套文档涵盖了以下几个主要的知识点: 1. **WebWork基础**:WebWork的核心概念,如Action、...

    Webwork2 手册

    Webwork2 是一个开源的在线作业系统,专为教育领域设计,用于创建和管理数学、物理等科学科目的互动问题。这个系统的核心是基于Java的,它允许教师创建复杂的数学问题,学生则可以在浏览器中解答并立即得到反馈。...

    webwork2教程

    ### WebWork2 教程详解 #### 一、引言 WebWork2 是一款轻量级的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发流程。通过本文档的学习,您将能够掌握 WebWork2 ...

    Webwork2_Guide

    Webwork2的教程

    WebWork2 开发指南

    WebWork2 是一款基于Java的轻量级MVC(Model-View-Controller)框架,它在Web应用开发中提供了一种高效、灵活的解决方案。WebWork2 的设计目标是简化Web开发,提高代码的可维护性和可测试性,同时保持高度的定制能力...

Global site tag (gtag.js) - Google Analytics