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
的工作流程如图:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/vbs19983/fa308bad32224e8e95370d2e8947055d.jpg)
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
文件详细的配置说明可以参考:
WebWork2.2.4
以后就不再升级,已合并到
Struts2
中,后续版本只是打补丁而已。
Struts2
的核心就是使用的
WebWork
,了解
WebWork
的工作方式可以轻松的过渡到
Struts2
。
有关更多的
WebWork
与
Struts2
的内容可以参考