WebWork基本配置流程

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 文件详细的配置说明可以参考:
 
WebWork2.2.4 以后就不再升级,已合并到 Struts2 中,后续版本只是打补丁而已。 Struts2 的核心就是使用的 WebWork ,了解 WebWork 的工作方式可以轻松的过渡到 Struts2
有关更多的 WebWork Struts2 的内容可以参考
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值