WebWork工作方式浅谈

开发 后端
Struts2的核心就是使用的WebWork,了解WebWork工作方式可以轻松的过渡到Struts2。

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过滤器,固定内容如下:

WebWork com.opensymphony.WebWork.dispatcher.FilterDispatcher WebWork /*

以上内容,WebWork包中提供了模板文件,可以直接拷贝过来修改一下即可。

模板文件路径:Webwork-2.2.4\webapps\blank\src\webapp\WEB-INF\web.xml

4、在src目录下创建xwork.xml文件(路径和文件名均是固定写法),内容如下:

/WEB-INF/pages/home.jsp

以上内容,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。

【编辑推荐】

  1. WebWork注入Servlet方法详解
  2. WebWork中返回INPUT的原因
  3. WebWork如何实现文件上传配置过程
  4. 通过WebWork实现HelloWorld
  5. WebWork与Spring+Hibernate的整合
责任编辑:冰荷 来源: csdn
相关推荐

2009-09-28 13:39:01

Hibernate工作

2009-08-13 18:36:29

C#数组工作方式

2009-06-22 16:42:26

JSF的工作方式

2009-07-10 13:55:48

Swing控件

2010-07-22 09:01:02

SQL Server镜

2010-08-06 10:41:59

Flex命名空间

2010-01-25 14:57:49

Android数据库

2016-10-27 17:49:07

群晖群晖科技NAS

2009-02-25 10:52:00

路由器原理工作方式协议

2023-03-20 15:34:00

ChatGPT人工智能

2012-11-27 09:12:39

思杰移动云计算

2024-03-27 14:51:23

2011-11-04 09:45:43

Siri

2011-11-04 09:52:24

Siri云计算苹果

2010-03-25 17:55:12

CentOS界面

2013-03-01 10:23:17

2011-07-14 13:20:49

Servlet过滤器

2021-12-07 10:18:06

首席信息官技术发展企业管理者

2022-12-02 13:43:54

供应链首席供应链官

2022-08-29 20:06:04

楼宇自控物联网
点赞
收藏

51CTO技术栈公众号