绝大多数情况下,WebWork不是直接实现com.opensymphony.xwork.Action接口,而是扩展com.opensymphony.xwork.ActionSupport类。ActionSupport实现了除Action以外的其他几个接口,主要的几个接口是:
com.opensymphony.xwork.Validateable
com.opensymphony.xwork.Validateaware
com.opensymphony.xwork.TextProvider
com.opensymphony.xwork.LocaleProvider
这些接口主要是提供给WebWork的拦截器使用的,接口配合拦截器可以实现AOP功能。比如Validateable接口和Validateaware接口配合DefailtWorkflowInterceptor就可以实现对用户输入进行检验的功能,当用户调用Action时,首先执行Validateable接口定义的validate()方法,如果在这个方法中用户使用接口Validateaware中的方法设置了错误信息,则DefaultWorkflowInterceptor会自动终止Action的执行,并产生一个INPUT的result,只有没有任何错误信息才会执行Action的剩余部分。
前面我们定义的xwork.xml配置文件中包含了一句:<include file="webwork-default.xml">,这个webwork-default.xml包含在webwork的jar包中。webwork-default.xml预建了很多常用的result-type、interceptor和interceptor-stack。其中interceptor和interceptor-stack用于定义webwork将要使用那些拦截器。interceptor定义一个拦截器,而interceptor定义一组拦截器。如果一个Action使用一组拦截器,则这些拦截器将以其定义的顺序执行,可见,interceptor-stack中拦截器的顺序时很重要的。
在webwork-default.xml中有如下定义:
<interceptor class="com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor" name="workflow">
......
而名为validationWorkflowStack和completeStack这两个预建的interceptor-stack则包含了workflow这个interceptor。
下面做一个检查用户输入的练习,如果用户没有输入内容,则让用户重新输入,并且提示错误信息。
web.xml
与上次的相同。
xwork.xml
</interceptor></include>
xml 代码
- "http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">
-
- <xwork>
- <include file="webwork-default.xml" />
-
- <package name="default" extends="webwork-default">
-
- <default-interceptor-ref name="validationWorkflowStack"/>
- <action name="alidateInput" class="example.ValidateInputAction">
- <result name="success">success.jsp<!---->result>
- <result name="input">input.jsp<!---->result>
- <!---->action>
-
- <!---->package>
- <!---->xwork>
input.jsp
xml 代码
- <%@taglib prefix="ww" uri="/webwork"%>
- <html>
- <head><title>Input Something<!---->title><!---->head>
- <body>
-
- <ww:form action="alidateInput.action">
- <ww:textfield label="Input something:" name="something"><!---->ww:textfield>
- <ww:submit><!---->ww:submit>
- <!---->ww:form>
-
- <!---->body>
- <!---->html>
success.jsp
xml 代码
- <%@taglib prefix="ww" uri="/webwork"%>
- <html>
- <head><title>Success!<!---->title><!---->head>
- <body>
- <ww:property value="something"/>
- <!---->body>
- <!---->html>
分享到:
相关推荐
WebWork 2.2版本在原有的基础上引入了若干新特性,提升了开发效率和用户体验。在这个PPT压缩包中,包含了一个Word文档和一个PowerPoint演示文稿,它们详细介绍了这些新特性。 首先,WebWork 2.2在动作映射(Action ...
【标题】:“webWork2.2+spring+SpringMVC组合例子”是一个示例项目,展示了如何将三个经典的Java Web框架——WebWork2.2、Spring以及Spring MVC整合在一起,以构建一个完整的Web应用程序。这样的组合可以充分利用各...
**WebWork2.2入门详解** WebWork是一个基于Java的MVC(模型-视图-控制器)框架,它为开发企业级Web应用提供了强大的支持。WebWork2.2是其一个较早但仍然广泛使用的版本,它引入了许多创新特性,如动作映射、拦截器...
WebWork2.2是一个基于Java的轻量级MVC(模型-视图-控制器)框架,主要用于构建Web应用程序。这个框架在2000年代初期非常流行,它提供了丰富的功能和灵活性,帮助开发者构建高性能、可维护的Web应用。本压缩包包含了...
webwork2.2.jar 类包 web work2
webwork的包。webwork开发者不可缺少的
webwork 2.1.7 版 原版留存 xwork.jar
以上只是WebWork教程的部分内容,完整的学习笔记涵盖了更多高级主题,如Interceptor(拦截器)、Validation(验证)、I18N(国际化)、AOP支持以及与其他开源项目的集成,如G-Roller-WW和Spring等。通过深入学习和...
在实际项目中,WebWork2通常与其他开源框架如Hibernate(持久层)、Spring(依赖注入和事务管理)等配合使用,构建完整的Java Web应用解决方案。 在“study note.txt”这个文件中,可能详细记录了如何配置WebWork2...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
6. **视图渲染**:WebWork使用JSP、FreeMarker或其他模板引擎作为视图技术,通过ActionSupport类和结果类型来决定如何渲染视图,使得视图层与控制层解耦。 7. **标签库**:WebWork提供了一套自定义的JSP标签,如`...
《WebWork入门到精通》这一课程由松迪科技(北京)有限公司的田雪松主讲,旨在全面解析WebWork框架,从基础知识到高级应用,帮助学员掌握WebWork的核心技术和实战技巧。 ### WebWork概述 WebWork是一个开源的MVC...
本指南将深入探讨WebWork2的基础知识、快速入门方法以及高级特性,以帮助开发者更好地理解和应用这一框架。 一、WebWork2基础知识 1. MVC模式:WebWork2遵循MVC设计模式,其中模型(Model)负责处理业务逻辑,视图...
#### 二、文件上传基础知识 文件上传是Web应用程序中的常见需求之一。在WebWork中,文件上传主要通过`FileUploadInterceptor`来实现。该拦截器处理HTTP请求中的文件上传数据,并将其封装成`java.io.File`对象或其他...
WebWork2还提供了ActionSupport类,这是大多数Action类的基础,包含了一些常用的方法,如国际化支持、模型驱动等。模型驱动允许你将Action中的属性直接绑定到视图,简化了视图层的渲染工作。 在本教程中,你将学习...
在解压后的目录中,你会发现`webwork-2.x.jar`(WebWork的核心库)、`webwork-example.war`(示例应用)、`webwork-migration.jar`(用于从1.x版本迁移到2.x版本)以及其他文档和库文件。WebWork需要在Web容器(例如...
例如,WebWork提供了ActionSupport类,作为Action的基类,提供了错误消息处理、国际化支持等功能。ActionContext是另一个重要的组件,它在每次Action调用时创建,用于获取和设置与请求相关的各种上下文信息,如...
Webwork2是一个基于Java的MVC(模型-视图-控制器)框架...学习Webwork2可以帮助开发者更好地理解和掌握MVC架构,以及拦截器、配置文件等核心概念,这些知识对于使用其他Java Web框架如Spring MVC或Struts2也是有益的。