1. 首先配置一个简单的webwork应用

核心jar:

commons-logging.jar
ognl.jar
oscore.jar
velocity-dep.jar
webwork-2.1.7.jar
xwork.jar

  1. 配置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>
    <taglib>
    <taglib-uri>webwork</taglib-uri>
    <taglib-location>/WEB-INF/lib/webwork-2.1.7.jar</taglib-location>
    </taglib>
    </web-app>
  2. 新建action: HelloWorld.java  
     package com.aeolia.action;
    
     import java.text.SimpleDateFormat;
    import java.util.Date; import com.opensymphony.util.Data;
    import com.opensymphony.xwork.Action; public class HelloWorld implements Action {
    private String message;
    private String name; public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } @Override
    public String execute() throws Exception {
    String result = "";
    if (this.name == null || this.name.equalsIgnoreCase("world") || this.name.equals("")) {
    result = INPUT;
    message = "Blank name or names of world are not allowed ";
    } else {
    message = "Hello World ! ";
    java.text.SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    String dateString = format.format(date);
    message += this.name;
    message += " time is " + dateString;
    result = SUCCESS;
    }
    return result;
    } public String getMessage() {
    return message;
    } }
  3. 配置xwork.xml(位于classes下)
    <!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="completeStack" />
    <action name="HelloWorld" class="com.aeolia.action.HelloWorld">
    <result name="success">hello.jsp</result>
    <result name="input">name.jsp</result>
    </action>
    </package>
    </xwork>
  4. 新建view:hello.jsp 
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="MS932"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <%@taglib prefix="ww" uri="webwork"%>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    Show message
    <ww:property value="message" />
    </body>
    </html>

完成,现在可以访问http://localhost:8080/web/HelloWorld.action

下图为简易的时序图

Webwork 学习笔记的更多相关文章

  1. [原创]java WEB学习笔记54:Struts2学习之路---概述,环境的搭建

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  7. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  8. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  9. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

随机推荐

  1. Java 基本语法----数组

    数组 数组概述 数组是多个相同类型数据的组合,实现对这些数据的统一管理. 数组属引用类型,数组型数据是对象(Object),数组中的每个元素相当于该对象的成员变量. 数组中的元素可以是任何数据类型,包 ...

  2. POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)

    题目 Description One of the more popular activities in San Antonio is to enjoy margaritas in the park ...

  3. SSHLibrary库关键字汇总

    红色框的部分是设置系统用户标识符(不可缺少):$表示非超级用户  #表示超级用户

  4. Android性能优化的一些方案

    优化Dalvik虚拟机的堆内存分配 1)首先内存方面,可以参考 Android堆内存也可自己定义大小和优化Dalvik虚拟机的堆内存分配 对于Android平台来说,其托管层使用的Dalvik Jav ...

  5. iOS中UIImage转换为NSData 方法

    参考网址:http://blog.csdn.net/lovenjoe/article/details/7484217 天牛 感谢作者的硕果 在Iphone上有两种读取图片数据的简单方法: UIImag ...

  6. Spring学习笔记--注入Bean属性

    这里通过一个MoonlightPoet类来演示了注入Bean属性property的效果. package com.moonlit.myspring; import java.util.List; im ...

  7. poj_3185 反转问题

    题目大意 有20个碗排成一排,有些碗口朝上,有些碗口朝下.每次可以反转其中的一个碗,但是在反转该碗时,该碗左右两边的碗也跟着被反转(如果该碗为边界上的碗,则只有一侧的碗被反转).求最少需要反转几次,可 ...

  8. 【PHP】 判断是否微信内置浏览器

    PHP 判断是手机端还是PC端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset($_SERVER['HTTP_X_WA ...

  9. java中生成流水号的一个例子(使用BerkeleyDB)

    package com.jiaoyiping.berkeleydb; import com.sleepycat.je.*; import com.sleepycat.utilint.StringUti ...

  10. Mysql group_concat函数列转行,与行转列

    例一: SELECT num from user 1.使用group_concat函数得到列转行 select group_concat(num) from user 2.使用SUBSTRING_IN ...