1. 首先下载webwork压缩包(如webwork-2.2.6.zip),将webwork-2.2.6.jar和lib\default目录下的所有jar包复制到项目的WEB-INF\lib目录下
2. 在web.xml中配置ServletDispatcher。它初始化WebWrok的一些配置信息,解析XWork的Action配置信息,根据请求去组装和调用执行相应的Action。配置如下:
<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>com.opensymphony.webwork.dispatcher.ServletD ispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
配置以上信息后,.action结尾的所有url请求将直接有ServletDispatcher去调度。
3. 一个HelloWorldAction测试类:
String greeting;
public String getGreeting() {
return greeting;
}
public void setGreeting(String greeting) {
this.greeting = greeting;
}
public String execute() throws Exception {
greeting = "Hello World!";
return SUCCESS;
说明:该类需实现Action接口,如要在jsp中输出成员变量greeting的值,必须写该变量的get、set方法
4. 配置xwork.xml:
<xwork>
<include file="webwork-default.xml" />
<package name="default" extends="webwork-default">
<action name="hello" class="com.test.HelloWorld" method="test">
<result name="success" type="dispatcher">/index.jsp</result>
<interceptor-ref name="params" />
</action>
</package>
</xwork>
ServletDispatcher是默认的处理Web Http请求的调度器,它是一个JavaServlet,是WebWork框架的控制器。所有对Action调用的请求都将通过这个ServletDispatcher调度。它将在web.xml里配置ServletDispatcher时指定(如上面配置的第2点),让所有对WebWork 的Action(默认的是.action的后缀)的请求都对应到该调度的JavaServlet中。
WebWork的工作流程ServletDispatcher接受客户端的HTTP请求,将JavaServlet的很多相关对象进行包装,再传给XWork框架,由XWork框架去解析xwork.xml配置文件,根据配置文件的信息,找到对应的Action,组装并调用相应的拦截器,执行Action,返回执行结果。