WebWork目前没有集成很好的IDE工具,只能手动配置。可以在http://www.opensymphony.com/webwork/下载到最新的WebWork开发包。以Eclipse+webwork-2.2.4为例配置步骤如下:
1、创建web工程
2、拷贝WebWork的jar文件到web工程的lib目录,必须的jar文件包括Webwork-2.2.4.jar和WebWork的lib目录下的default目录中的所有jar文件。
3、修改web.xml,添加WebWork过滤器,固定内容如下:
<filter>
<filter-name>WebWork</filter-name>
<filter-class>com.opensymphony.WebWork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>WebWork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上内容,WebWork包中提供了模板文件,可以直接拷贝过来修改一下即可。
模板文件路径:Webwork-2.2.4\webapps\blank\src\webapp\WEB-INF\web.xml
4、在src目录下创建xwork.xml文件(路径和文件名均是固定写法),内容如下:
<xwork>
<include file="webwork-default.xml"/>
<package name="default" extends="webwork-default">
<default-action-ref name="home" />
<action name="home" class="com.opensymphony.WebWork.example.HomeAction" method="">
<result>/WEB-INF/pages/home.jsp</result>
</action>
<!-- Add your actions here -->
</package>
</xwork>
以上内容,WebWork包中提供了模板文件,可以直接拷贝过来修改一下即可。
模板文件路径:Webwork-2.2.4\webapps\blank\src\webapp\WEB-INF\classes\xwork.xml
其中被包含的webwork-default.xml文件不要随意修改(包括里面内容的顺序),修改后WebWork可能会无法正常工作。
package标签使得配置文件也可以分包存放(与代码的包不同)。action标签的name属性就是表单提交时使用的action的名字,class属性代表处理请求的action类。method属性(可选)可以指定执行的方法名,这是一个非常好用的属性,在Struts中每个逻辑处理单元都要单独写一个action类,这样一个工程可能会有很多action类,而每个action只做一个处理,使用method属性可以只写一个action类,根据需要指定不同的方法处理请求即可。
result标签指定action类执行完后转向的显示页面。result标签也可以指定使用模板输出显示内容,如Freemarker或Velocity。
5、创建action类,需要手工指定实现com.opensymphony.xwork.Action接口。在Struts中如果有表单,则对应表单需要有formbean,在WebWork中formbean则不是必须的,可以将表单提交的属性作为变量,都写到action类中,但必须为变量添加set和get方法,WebWork使用类似Spring的注入功能实现变量的赋值。
action类也可以指定使用单独的bean类实现类似formbean的功能,只需在action类中将此bean类的对象实例化好,并设置set和get方法即可。
如果不使用formbean则表单提交时表单元素的name属性值要和action类中相应的变量名相同,如果使用formbean则表单元素的name属性值为“bean类名.属性名”。
com.opensymphony.xwork.Action接口中的execute方法并没有request和response参数,而是将请求和响应与web容器剥离,单独封装起来,由WebWork核心控制器管理,所以在处理请求时使用的request或session都要从WebWork上下文中获取。
execute方法返回的是一个字符串而不是像Struts一样封装的ActionMapping对象,返回的字符串根据xwork.xml文件中对应的action标签中的result标签找到指定的显示页面。
com.opensymphony.xwork.Action接口中定义了一些常用的常量用来表示页面的转向,常量的值与常量名相同。例如SUCCESS表示执行成功。WebWork默认的也是转发而不是重定向。
最简单的action类的代码如下:
import java.util.Map;
import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionContext;
public class SampleAction implements Action {
private String param = null; //声明变量(取代formbean的方式)
/*变量的get方法*/
public String getParam() {
return param;
}
/*变量的set方法*/
public void setParam(String param) {
this.param = param;
}
/*实现Action接口的execute方法,调用Model层实现业务逻辑*/
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
session.put("anyParam",getParam());
return SUCCESS; //指定的显示页面在xwork.xml文件中设置
}
}
6、至此基本的WebWork应用已经配置好了,创建Model层和View层实现业务逻辑即可。
WebWork的工作流程如图:
WebWok还有一个可选的配置文件,文件名为webwork.properties,同样是放在src目录下。WebWork2.X在Tomcat5.5以上或Resin3可以正常运行,对中文支持不好,需要手动转换编码,可以添加如下配置信息:
webwork.locale=zh_CN
webwork.i18n.encoding=GBK
webwork中的action类缺省后缀是action,也可以通过配置文件修改
webwork.action.extension=action
对webwork.properties文件详细的配置说明可以参考:
http://wiki.javascud.org/display/ww2cndoc/WebWork.properties
WebWork2.2.4以后就不再升级,已合并到Struts2中,后续版本只是打补丁而已。Struts2的核心就是使用的WebWork,了解WebWork的工作方式可以轻松的过渡到Struts2。
有关更多的WebWork与Struts2的内容可以参考
http://book.csdn.net/bookfiles/479/10047916693.shtml
分享到:
相关推荐
### WebWork 开发指南知识点详解 #### 一、WebWork框架概述 ...通过上述内容的学习,开发者不仅能够掌握 WebWork 的基本使用方法,还能深入了解其核心机制和技术点,为后续的深入学习和实践打下坚实的基础。
1. 安装配置:首先,需要在项目中引入WebWork2的依赖库,配置web.xml文件以启动WebWork2的Servlet。然后,创建一个基本的动作类,并在actions.xml文件中进行映射。 2. 创建第一个动作:创建一个简单的Java类,继承...
3. **请求处理流程**:当一个HTTP请求到达时,WebWork会解析请求参数,然后通过Action Mapping找到对应的Action实例。`com`目录下的源代码包含了许多Action类,它们是业务逻辑的具体实现。 4. **Interceptors(拦截...
2. **配置Action**:在`webwork.xml`文件中添加对`HelloAction`的配置,包括Action的名称、输入参数以及返回结果等。 3. **创建视图**:编写一个简单的JSP页面作为视图,用来显示返回的信息。 4. **运行应用**:启动...
快速入门通常包括搭建开发环境、创建基本的Web应用、定义Action和配置拦截器等步骤,通过官方文档和社区资源,开发者可以迅速掌握这些基础知识,开始构建自己的Web应用程序。 #### 结语 WebWork 2.0和Struts 2.0的...
手册可能包含了框架的基本概念、核心组件、配置、控制器、模型、视图、动作、拦截器以及与Spring等其他框架的集成等内容。 在Web开发中,一个框架如WebWork能够极大地提高开发效率,通过提供一套规范化的编程模式,...
通过这个简单的“HelloWorld”例子,你可以学习到WebWork的基本架构和工作流程,这对于进一步学习WebWork乃至Struts2等其他MVC框架都是非常有帮助的。此外,理解Action、配置文件、拦截器等概念,对于任何Java Web...
让我们深入探讨WebWork的核心概念、Action的创建以及如何实现基本的流程控制。 **WebWork核心概念** 1. **Action**: 在WebWork中,Action是业务逻辑的主要载体。它负责接收来自视图层(如JSP)的请求,处理业务...
总的来说,"WebWork入门例子 HelloWorld"是一个简单的教学实例,涵盖了WebWork的基本架构和操作流程,包括Action配置、Action类实现以及视图渲染。通过这个例子,学习者可以快速上手WebWork,并进一步深入理解其高级...
【基于WebWork.Hibernate的项目】是一个典型的Java Web开发框架集成应用,主要涉及WebWork作为MVC...在实际开发过程中,开发者需要熟练掌握这两者的基本概念、配置以及使用方法,以便更好地理解和维护这样的项目。
本文档主要介绍了WebWork的基本概念、与其它框架的比较以及如何在不同版本之间进行升级等内容。 #### 二、WebWork与Struts的关系 1. **定义:** - **WebWork**:最初由OpenSymphony团队开发,后来被Apache软件...
总的来说,WebWork 2.2 是一个强大且灵活的 Web 开发框架,通过理解并掌握其基本原理和使用方法,可以大大提高开发效率和代码质量。对于初学者,可以从创建第一个 Action 开始,逐步探索框架的其他高级特性。在遇到...
这个简单的Hello World示例展示了WebWork框架的基本工作流程。用户请求被过滤器拦截,转发给StrutsPrepareAndExecuteFilter,该过滤器解析请求并调用相应的Action。Action执行业务逻辑,返回结果字符串,然后框架...
WebWork2是一个基于Java的MVC(模型-视图...这对于理解MVC架构,掌握Web开发的基本流程,以及提升Java Web应用的开发技能都是非常有益的。同时,无需改动的特点意味着这个例子可以直接运行,便于你快速验证和学习效果。
WebWork 是一个由 OpenSymphony 开发的 ...通过实践上述的WebWork简单实例,你可以开始了解WebWork的工作原理和流程,进一步深入学习WebWork的高级特性,如拦截器、AOP、国际化、异常处理等,从而提升你的Web开发技能。
通过本文档的学习,您将能够掌握 WebWork2 的基本组件和操作流程。 #### 二、核心概念与组成部分 ##### 2.1 Actions 和 Results - **Actions**:在 WebWork 中扮演控制器的角色,它们是应用的核心执行单元。每个 ...
- **第一个WebWork应用**:通过一个简单的“Hello World”示例,读者可以快速上手WebWork框架的基本用法,了解其工作流程和基本概念。 - **核心概念**:本书第二部分深入探讨了WebWork的核心概念,如动作、拦截器、...