webwork简单实例及说明 联系客服

发布时间 : 星期四 文章webwork简单实例及说明更新完毕开始阅读4fee390316fc700abb68fcd3

WEBWORK入门及实例说明 WebWork介绍

WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的拉出式MVC模式J2EE Web框架。WebWork目前最新版本是2.1,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目,如下示意图所示:

Xwork简洁、灵活功能强大,它是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph Notation Language),IoC(Inversion of Control倒置控制)容器等。

WebWork2建立在Xwork之上,处理HTTP的响应和请求。WebWork2使用ServletDispatcher将HTTP请求的变成Action(业务层Action类), session(会话)application(应用程序)范围的映射,request请求参数映射。WebWork2支持多视图表示,视图部分可以使用JSP, Velocity, FreeMarker, JasperReports,XML等。

下面我们提到的WebWork将为WebWork2,使用的版本是2.1。

WebWork安装-HelloWorld

WebWork安装

当然,在具体开发使用介绍之前,搭建好运行环境是必备的。

首先从https://webwork.dev.java.net/servlets/ProjectDocumentList下载最新的WebWork压缩包,并将其解压开来。打开解压目录,你将看到以下的文件和目录:

webwork-2.x.jar 当然就是WebWrok最新发布的Jar包

webwork-example.war 是WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径

webwork-migration.jar 提供快速将1.x版本移植到2.x版本所用的类文件

docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等

lib目录 WebWork在运行或编译时所用到的所有.jar包

src目录 源程序目录

2、WebWork是J2EE Web框架,当然要运行在Web容器中,我用的是稳定的Tomcat 4.1,关于tomcat

的安装和部署请自己搞定。

3、用WebWork当然要将它的运行时用到的Jar包放到Web容器可以找到的ClassPath中,将步骤1介绍的webwork-2.x.jar放到你部署目录下WEB-INF\\lib目录里,同时将WebWrok解压目录lib\\core下的所有.jar文件也拷贝到WEB-INF\\lib目录,这些是运行WebWork必需要用到的jar包。

4、了解Web框架的朋友都知道,一般Web框架都是通过一个JavaServlet控制器提供统一的请求入口,解析请求的url,再去调用相应的Action进行业务处理。WebWork也不例外,它要求你在web.xml文件里配置一个派遣器ServletDispatcher,它初始化WebWrok的一些配置信息,解析XWork的Action配置信息,根据请求去组装和调用执行相应的拦截器(Interceptor)、Action、Action Result(Action执行结果的输出)等,具体配置如下: 代码 ……

webwork

com.opensymphony.webwork.dispatcher.ServletDispatcher ……

webwork *.action ……

这样,.action结尾的所有url请求将直接有ServletDispatcher去调度。下面我们写一个经典的HelloWorld,跑一个简单实例来验证你运行环境是否可用,并感受一下简单、功能强大的WebWork的开发。

注意:如果使用WebWork自带的标签库,除了配置相应的标签库以外,还须将com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet配置到web.xml,具体可以参考webwork-example里面的配置。

HelloWorld

首先看下面这个程序HelloWorldAction.java: 代码

package helloWorld

import com.opensymphony.xwork.Action;

public class HelloWorldAction implements Action{

String greeting;

public String getGreeting() { return greeting; }

public String execute() throws Exception { greeting = \ return SUCCESS; } }

HelloWorldAction是一个普通的Java类,它实现了Action这个接口。Action是一个非常简单的接口,只有一个方法:public String execute() throws Exception; ,Action类介绍见下一节。HelloWorldAction有一个String类型字段greeting,在execute()方法中,greeting被赋值―Hello World!‖,并返回String型常量SUCCESS,SUCCESS的定义详见Action接口,这个常量代表了execute()方法执行成功,将返回成功页面。

返回的页面greetings.jsp代码如下: 代码

<%@ taglib prefix=\

First WebWork Example

greetings.jsp很简单的jsp页面,它使用了WebWork自带的标签库。它的作用是输出变量―greeting‖的值。这个

我们的HelloWorld代码就这么多,完了。可是,HelloWorldAction怎么去调用、执行?执行成功它又怎么知道返回到greetings.jsp?XWork的配置文件xwork.xml会负责将要执行的Action和展现的视图连接起来,见xwork.xml的如下片断:

代码

我们先看action标签:name=‖hello‖,表示我们调用这个Action的标识是hello,这样我们可以通过下面的url访问这个Action:…/hello.action,

例如:http://localhost:8080/webwork/hello.action;class=\很好理解,这是真正调用执行的类。我们在看看result标签:name=\,记得前面HelloWorldAction返回的字符常量SUCCESS吗?它的值其实就是―success‖,它表示Action执行成功返回success就转向这个结果;type=\表示执行完Action,转向结果页面的方式;param参数指定了结果页面的位置:/greetings.jsp。

代码写完,剩下的当然是编译、部署。启动tomcat服务器之后我们就可以执行了:

在浏览器里输入你的地址:http://localhost:8080/webwork/hello.action

你将会看到如下结果:

Action(动作)

Action介绍

Action在MVC模式中担任控制部分的角色,在WebWork中使用的最多。每个请求的动作都对应于一个相应的Action,一个Action是一个独立的工作单元和控制命令,它必需要实现XWork里的Action接口,实现Action接口的execute()方法。Action接口的代码如下: 代码

package com.opensymphony.xwork;

import java.io.Serializable;

public interface Action extends Serializable {

public static final String SUCCESS = \public static final String NONE = \public static final String ERROR = \public static final String INPUT = \public static final String LOGIN = \