webwork初体验

来源:互联网 发布:linux ip命令 编辑:程序博客网 时间:2024/05/16 04:50

webwork

Xwork 简洁、灵活功能强大,它是一个标准的command模式实现,并且完全从web层脱离出来。xwork提供了很多的核心功能。webwork建立在xwork之上,处理HTTP的响应和请求。webwork2使用ServletDispatcher将HTTP的请求的变成Action,session,application范围的映射,request请求参数映射。webwork2的视图表示方法有:JSP,Velocity,freemarker,jasperreports,XML。

我的第一个webwork程序:

1.新建项目webworkfirst(文件夹,在D:/tomcat5.0/webapps目录下面),新建D:/tomcat5.0/webapps、webworkfirst/WEB-INF目录,把web.xml,webwork.tld放在该目录下。

项目框架如下:

D:/tomcat5.0/webapps/webworkfirs

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/web.xml

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/webwork.tld

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/classes

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/classes/components.xml

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/classes/webwork-default.xml

D:/tomcat5.0/webapps/webworkfirst/WEB-INF/classes/xwork.xml

2.新建Action类:(HelloWorldAction.java)

package helloworld;

import com.opensymphony.xwork.Action;

public class HelloWorldAction implements Action{
 String greeting;
 
 public String getGreeting(){
  return greeting;
  }
 
 public String execute() throws Exception{
  greeting = " Hello World!";
  return SUCCESS;
  }
 }

3.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="default" extends="webwork-default">

        <default-interceptor-ref name="defaultStack"/>
       
        <action name="hello" class="helloworld.HelloWorldAction">
            <result name="success" type="dispatcher">
                <param name="location">/greeting.jsp</param>
            </result>
           
         <interceptor-ref name="defaultStack"/>
        </action>

       

    </package>

</xwork>

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

    <display-name>WebWork 2.0 Example App</display-name>

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

    <filter>
        <filter-name>container</filter-name>
        <filter-class>com.opensymphony.webwork.lifecycle.RequestLifecycleFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>container</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!--
        <filter-mapping>
            <filter-name>webwork</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    -->

    <listener>
        <listener-class>com.opensymphony.webwork.lifecycle.ApplicationLifecycleListener</listener-class>
    </listener>

    <listener>
        <listener-class>com.opensymphony.webwork.lifecycle.SessionLifecycleListener</listener-class>
    </listener>

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

    <servlet>
        <servlet-name>validation</servlet-name>
        <servlet-class>com.opensymphony.webwork.validators.ValidationServlet</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>freemarker</servlet-name>
        <servlet-class>com.opensymphony.webwork.views.freemarker.FreemarkerServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet>
        <servlet-name>velocity</servlet-name>
        <servlet-class>com.opensymphony.webwork.views.velocity.WebWorkVelocityServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>freemarker</servlet-name>
        <url-pattern>*.ftl</url-pattern>
    </servlet-mapping>

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

    <servlet-mapping>
        <servlet-name>validation</servlet-name>
        <url-pattern>/validation</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
    </servlet-mapping>

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

    <taglib>
        <taglib-uri>webwork</taglib-uri>
        <taglib-location>/WEB-INF/webwork.tld</taglib-location>
    </taglib>

  </web-app>


5.greeting.jsp

<%@ taglib prefix="ww" uri="webwork" %>
<html>
<head>
<title>First  WebWork Example </title>
</head>
<body>
<p>
<ww:property value="greeting"/>
</p>
</body>
</html>

原创粉丝点击