WebWork最小配置

来源:互联网 发布:学python好还是java好 编辑:程序博客网 时间:2024/06/06 13:57

WebWork是开源Web应用框架(OSWAF),基于拦截器技术,其结构为:WebWork+XWork,使用了适配器+代理模式连接可独立变化的两个部分,利于重用,例如WebWork可以是MailWork,FtpWork等,一般xwork很少变动.

官方网址为: http://www.opensymphony.com ,symphony(交响乐).

本例应用场景:WebWork2.1.7+XWork1.0.5+Tomcat5.5.9

一些组件的简单介绍

XWork是一个命令模式框架,应用于强大的WebWork,也可以用于其他应用,它提供一个IOC容器,一个强大的表达式语言,数据类型转换,验证以及可插式配置.

除核心类库外,还有两个必要的库:Ognl,Oscore.

http://www.ognl.org  Ognl是对象图导航语言,其部分功能类似于JSTL中的EL,只是句法不同,如有对象foo,其属性为bar,则用Ognl访问为:#foo.bar.XWork在其上做了扩展.

Oscore 是Opensymphony其它项目的公用工具类库,它依赖commons-logging.jar.其还特别提供了一个序列生成器为CMP.

实例

这个实例中所有元素都是最小配置,可以作为空项目模板,然后根据项目需要增加其它功能.

在建立servlet规范的目录结构后,首先是web.xml的配置:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    <servlet>
        <servlet-name>webwork</servlet-name>
        <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>webwork</servlet-name>
        <url-pattern>*.action</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

然后是xwork.xml的配置:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">
<xwork>
 <include file="webwork-default.xml" />
 <package name="examples" extends="webwork-default">
  <action name="login" class="org.sfliu.webwork.action.LoginAction">
   <result name="error" type="dispatcher">index.jsp</result>
   <result name="success" type="dispatcher">index.jsp</result>
   <interceptor-ref name="params" />
  </action>
 </package>
</xwork>

要注意该文件作为资源加载所以要放在类路径中,其中webwork-default.xml是必须要引入的,该文件位于webwork-2.1.7档案根下.提供了基本组件的定义.

接下来是那个jsp文件:index.jsp

<%@ page pageEncoding="gb2312" contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="ww" uri="webwork"%>
<html>
<body>
<form action="login.action" method="post">
  <table cellspacing=0 width="100%">
    <tr>
      <td>Login ID:
        <input type="text" name="userid" width=100 />&nbsp;&nbsp;
          Password:
        <input type="password" name="pwd" width=100 />&nbsp;&nbsp;
        <input type="submit" value="Login" />
      </td>
      <td align=right>
         Hello, <ww:property value="userid" />
      </td>
    </tr>
  </table>
</form>
</body>
</html>

动作类:

package org.sfliu.webwork.action;

import com.opensymphony.xwork.ActionSupport;

public class LoginAction
    extends ActionSupport {
  private String userid;
  private String pwd;

  public String getPwd() {
    return pwd;
  }

  public void setPwd(String pwd) {
    this.pwd = pwd;
  }

  public String getUserid() {
    return userid;
  }

  public void setUserid(String userid) {
    this.userid = userid;
  }

  public String execute() throws Exception {
    return false;
  }
}

简单的一个视图和一个动作提供完毕.

运行最小需求:


WEB-INF文件夹下除了web.xml外,还要包括表单必须的标记库webwork.tld.

WEB-INF文件夹下的lib文件夹下有:webwork.jar,xwork.jar,ognl.jar,oscore.jar.

lib文件夹下有:webwork.jar,xwork.jar,ognl.jar,oscore.jar.

WEB-INF文件夹下的classes文件夹下放org.sfliu.webwork.action包.

WebWork参考:

https://webwork.dev.java.net/,有个Eclipse的WebWork插件.

http://sourceforge.net/projects/opensymphony 关于WebWork层次式拉模型的MVC.

原创粉丝点击