怎么用WebWork来实现HelloWorld?

来源:互联网 发布:淘宝网衬衣 编辑:程序博客网 时间:2024/04/30 16:45

怎么用WebWork来实现HelloWorld

在具体开发使用介绍之前,搭建好运行环境是必备的。假设Tomcat的安装和部署已搞定,打开eclipse新建一个Tomcat工程HelloWorld:

1.在网上下载到最新的WebWork压缩包,并将其解压开来。打开解压目录,你将看到以下的文件和目录:

webwork-2.x.jar 当然就是WebWrok最新发布的Jar

webwork-example.war WebWrok自带的很有代表性的功能演示例子,掌握它是提高你的WebWork技术水平的捷径

webwork-migration.jar 提供快速将1.x版本移植到2.x版本所用的类文件

docs目录 WebWrok的使用文档,包括api文档、clover文档、单元测试(Junit)文档等

lib目录 WebWork在运行或编译时所用到的所有.jar

src目录 源程序目录

2.使用WebWork需要将它运行时的Jar包入到Web容器可以找到的ClassPath中:

将步骤1中介绍的webwork-2.x.jar放到Tomcat工程下的WEB-INF/lib目录中,同时也要将../ webwork-2.2.6/lib/default中的所有jar文件和../webwork-2.2.6/lib/spring中以spring开头的jar文件也一起放到WEB-INF/lib中,这些都是运行WebWork必需要用到的jar包。

3.Webwork框架是通过一个JavaServlet控制器提供统一的请求入口,解析请求的url,再去调用相应的Action进行业务处理。要求在web.xml文件里配置一个派遣器ServletDispatcher,它初始化WebWrok的一些配置信息,解析XWorkAction配置信息,根据请求去组装和调用执行相应的拦截器(Interceptor)ActionAction Result(Action执行结果的输出)等,具体配置如下:

……

<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>

……

这样,.action结尾的所有url请求将直接有ServletDispatcher去调度。

 

下面我们用一个经典的HelloWorld实例来验证运行环境是否可用,并感受一下简单、功能强大的WebWork的开发。

 

4.把刚才WebWorkjar包都导进来,项目右键Build Path—Configure Build Path…在弹出的对话框中选择Java Build Path,对应选择右边的Libraries标签页,选择Add JARs…按钮,在弹出的窗口中选择刚建立的工程的HelloWorld—WEB-INF—lib 下面的全部jar包,点OK退出。这时会看到在工程HelloWorld下面多了一些瓶子似的jar,这表明已经成功导入。

5.WEB-INF/src下建一个Package名字为helloWorld,再建一个class名字为HelloWorldAction,添加代码如下:

HelloWorldAction.java

package helloWorld;

import com.opensymphony.xwork.*;

 

public class HelloWorldAction implements Action{

  private String hello;

  public String execute() throws Exception{

            hello = "Hello World";

            return SUCCESS;

  }      

  public String getHello() {

            return hello;

  }

  public void setHello(String hello) {

            this.hello = hello;

  }

}

HelloWorldAction是一个普通的Java类,它实现了Action这个接口。Action是一个非常简单的接口,只有一个方法:public String execute() throws Exception; Action类介绍见下一节。HelloWorldAction有一个String类型字段greeting,在execute()方法中,greeting被赋值“Hello World!”,并返回String型常量SUCCESSSUCCESS的定义详见Action接口,这个常量代表了execute()方法执行成功,将返回成功页面。

6.右键工程名字新建一个.jsp文件--hello.jsp代码如下:

hello.jsp

<%@ taglib prefix="ww" uri="/webwork" %>

 

<%@ page language="java" contentType="text/html; charset=GBK"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

<title>First WebWork Example</title>

</head>

<body>

  0000000010100001000010000100000011000010001110000000010000测试数据

<p><ww:property value = "hello"/></p>

</body>

7.配置web.xml文件:WEB-INF下面建立web.xml文件,代码如下:

web.xml

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

    version="2.4">

<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>

<filter>

    <filter-name>webwork</filter-name>

    <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>

</filter>

<listener>

          <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

</web-app>

 

8.配置xwork.xml文件:在WEB-INF/src下面建立xwork.xml文件,代码如下:

xwork.xml

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.1.1//EN"

"http://www.opensymphony.com/xwork/xwork-1.1.1.dtd">

<xwork>

<include file="webwork-default.xml"/>

  <package name="helloWorld" extends="webwork-default">      

      <action name="hello" class="helloWorld.HelloWorldAction">

      <result name="success">hello.jsp</result>

      <!-- <param name="location"></param> -->       

            </action>      

  </package>

</xwork>

xwork.xml的作用通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。(这是一个标准说法)。

说白了就是联系刚才的几个文件,传值用的。-_-|||

9.Tomcat安装目录下../Tomcat 5.5/conf打开sever.xml文件,添加如下代码:

<Host name="test" debug="0" appBase="" unpackWARs="true" autoDeploy="true">

                     <Context path="" reloadable="true" docBase="E:/eclipse/HelloWorld" >

                              <Manager className="org.apache.catalina.session.PersistentManager" debug="0" saveOnRestart="true"

                                        maxActiveSessions="1" minIdleSwap="20" maxIdleSwap="60" maxIdleBackup="10" >

                                        <Store className="org.apache.catalina.session.FileStore" directory="session"/>

                              </Manager>

                     </Context>

</Host>

修改系统的host文件,添加如下代码:

127.0.0.1      test

 

10.打开浏览器,输入网址:http://test/hello.action即可看到如下显示:

0000000010100001000010000100000011000010001110000000010000测试数据

Hello World

表明运行成功!

 

 

后记:有感于自己的悟性太低,在网上找的WEBWORK实现HELLOWORLD的低级功能说明竟然都没有在自己的机子上跑起来,经师傅指点之后,惭愧之余,做此文。

        希望初学者,不要为一些小细节再为难~有什么问题可以交流iezsf@hotmail.com,我也是初学,不要寄太多的希望。

原创粉丝点击