Webwork 学习笔记

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  

     1 package com.aeolia.action;
     2
     3 import java.text.SimpleDateFormat;
     4 import java.util.Date;
     5
     6 import com.opensymphony.util.Data;
     7 import com.opensymphony.xwork.Action;
     8
     9 public class HelloWorld implements Action {
    10     private String message;
    11     private String name;
    12
    13     public String getName() {
    14         return name;
    15     }
    16
    17     public void setName(String name) {
    18         this.name = name;
    19     }
    20
    21     @Override
    22     public String execute() throws Exception {
    23         String result = "";
    24         if (this.name == null || this.name.equalsIgnoreCase("world") || this.name.equals("")) {
    25             result = INPUT;
    26             message = "Blank name or names of world are not allowed ";
    27         } else {
    28             message = "Hello World ! ";
    29             java.text.SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    30             Date date = new Date();
    31             String dateString = format.format(date);
    32             message += this.name;
    33             message += "  time is " + dateString;
    34             result = SUCCESS;
    35         }
    36         return result;
    37     }
    38
    39     public String getMessage() {
    40         return message;
    41     }
    42
    43 }

  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

下图为简易的时序图

时间: 2024-10-12 22:09:18

Webwork 学习笔记的相关文章

Struts2学习笔记1

一.下载struts2.0.1 http://struts.apache.org/downloads.html,下载struts-2.0.1-all.zip,这个压缩包中包括了开发struts2所需的struts2-core.jar核心包以及其他struts2所依赖的JAR文件,另外另一些struts2的演示样例程序以及一些HTML的API文档. 二.试用struts2.0.1 1. 新建一个WEBproject,将struts-2.0.1-all.zip压缩包中的lib文件夹下的全部jar文件

Freemaker_入门+深入+开发指南+学习笔记

freemaker的基本语法 freemaker的基本语法:<# ... > 中存放所有freemaker的内容,之外的内容全部原样输出.<@ ... /> 是函数调用两个定界符内的内容中,第一个符号表示指令或者函数名,其后的跟随参数.freemaker提供的控制包括如下: <#if condition><#elseif condition><#else></#if> 条件判断<#list hash_or_seq as var&

vector 学习笔记

vector 使用练习: /**************************************** * File Name: vector.cpp * Author: sky0917 * Created Time: 2014年04月27日 11:07:33 ****************************************/ #include <iostream> #include <vector> using namespace std; int main

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

Caliburn.Micro学习笔记(一)----引导类和命名匹配规则 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle ICondu

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

[原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

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

Activiti 学习笔记记录(三)

上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

HTML&CSS基础学习笔记8-预格式文本

<pre>标签的主要作用是预格式化文本.被包围在 pre 标签中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre>标签的一个常见应用就是用来表示计算机的源代码.当然你也可以在你需要在网页中预显示格式时使用它. 会使你的文本换行的标签(例如<h>.<p>)绝不能包含在 <pre> 所定义的块里.尽管有些浏览器会把段落结束标签解释为简单地换行,但是这种行为在所有浏览器上并不都是一样的. 更多学习内容,就在码芽网http://www.

java/android 设计模式学习笔记(14)---外观模式

这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式.通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节.当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块.ImageLoader 模块等.其实我们在开发过程中可能已经使用过很多次外观模式,只是没有从理论层面去了解它. 转载请注明出处:http://bl