Webwork2学习笔记(一)

WebWork2中文文档及开发指南 WebWork2是一个流行的Java Web应用框架,它基于MVC架构模式,以简单、灵活和可扩展性著称。本章将介绍WebWork2框架的核心概念、特点以及它在现代Java Web开发中的应用价值。WebWork2框架被设计为轻量级的MVC实现,旨在简化Web应用的开发流程。它提供了一套完整的解决方案,涵盖了从请求处理到数据处理、视图渲染以及用户交互的各个方面。WebWork2将业务逻辑与页面展示分离,使得开发者能够专注于各自的领域,提高代码的可维护性和可测试性。 阅读详情

最近打算开始学习webwork,在这里我想藉此Blog来记录我的学习历程,也希望和所有webwork的爱好者们一起做个交流

好了废话不多说,我先介绍一下我对此次学习的准备:

1。工具及环境准备
 JDK1.4.2(位置为%JAVA_HOME%)
 Eclipse3.0(推荐插件:lomboz、XMLBuddy、TomcatPlugin)
 Webwork2.1(位置为%WEBWORK_HOME%)
 Tomcat5.0.25

2。学习资料准备
 Webwork2.1自带的教程(在webwork2.1/doc下)


下面学习开始了

[第一个webwork程序helloWorld的搭建]

1。用Eclipse新建一个Tomcat Project,这里我建了一个项目名为Z_Webwork的Tomcat Project.
 Z_Webwork的目录结构如下:
  Z_Webwork/work
  Z_Webwork/WEB-INF
  Z_Webwork/WEB-INF/classes
  Z_Webwork/WEB-INF/lib
  Z_Webwork/WEB-INF/src

2。Import %WEBWORK_HOME%/webwork-2.1.jar 到Z_Webwork/WEB-INF/lib下
  copy %WEBWORK_HOME%/lib/core/*.jar 到Z_Webwork/WEB-INF/lib下

3。设置Eclipse环境的变量
  右击项目Z_Webwork->Properties->Java Build Path->Add Library->User Library
                   ->New 一个用户自定义Library:WEBWORK_LIB
     ->Add JARs %WEBWORK_HOME%/webwork-2.1.jar
     ->Add JARs %WEBWORK_HOME%/lib/core/*.jar

4。建立Webwork中需要用到三个基本的配置文件
  (1)web.xml
 位置:Z_Webwork/WEB-INF/
 内容如下:

<?xml version="1.0"?>
<!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>My WebWork Application</display-name>
 <servlet>
  <servlet-name>webwork</servlet-name>
  <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class>
  <load-on-startup>1</load-on-startup>
 </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.jar</taglib-location>
 </taglib>
</web-app>

 

 (2)xwork.xml
 位置:Z_Webwork/WEB-INF/src/
 内容如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>
 <!-- Include webwork defaults (from WebWork-2.1 JAR). -->
 <include file="webwork-default.xml" />
 
 <!-- Configuration for the default package. -->
 <package name="default" extends="webwork-default">

 </package>
</xwork>

 

(3)validators.xml
 位置:Z_Webwork/WEB-INF/src/
 内容如下:

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">

<validators>
 <validator name="required"
  class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
  
 <validator name="requiredstring"
  class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
  
 <validator name="int"
  class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator"/>
  
 <validator name="date"
  class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator"/>
  
 <validator name="expression"
  class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>
  
 <validator name="fieldexpression"
  class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator"/>
  
 <validator name="email"
  class="com.opensymphony.xwork.validator.validators.EmailValidator"/>
  
 <validator name="url"
  class="com.opensymphony.xwork.validator.validators.URLValidator"/>
  
 <validator name="visitor"
  class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator"/>
  
 <validator name="conversion"
  class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator"/>

</validators>

 

 好了,这样一个webwork的骨架搭好了,整体结构如下图:


5。下面我们将按照Lesson 3: Actions and Results做一个示例
 ex01-index.jsp :此页面将一个表单提交给一个action(HelloWebWorldAction)处理
 HelloWebWorldAction.java :继承ActionSupport实现了HelloWebWorldAction,这里HelloWebWorldAction扮演MVC中的Control
 ex01-success.jsp :HelloWebWorldAction处理成功后将返回此页面
 
 在这里,为了便于管理,我仿照教程在Z_Webwork下建了目录lesson03/example01,并将ex01-index.jsp和ex01-success.jsp置于其下
 HelloWebWorldAction.java位置是Z_Webwork/WEB-INF/src/lesson03,在后续的笔记里,所有的例子我都将按照这种结构存放代码

 各页面代码分别如下:

//ex01-index.jsp

<html>
<head>
<title>WebWork Tutorial - Lesson 3 - Example 1</title>
</head>

<body>

<p>Click the button below to activate HelloWebWorldAction.</p>

<form action="helloWebWorld.action" method="post">
<p><input type="submit" value="Hello!" /></p>
</form>

</body>
</html>

 

//HelloWebWorldAction.java

package lesson03;

/**
 * @author 泰伯子仪
 * 
 */
import com.opensymphony.xwork.ActionSupport;

public class HelloWebWorldAction extends ActionSupport
{
    String hello;

    public String getHello()
    {
        return hello;
    }

    public String execute() throws Exception
    {
        hello = "Hello, WebWorld!";
        return SUCCESS;
    }
}

//ex01-success.jsp

<%@ taglib uri="webwork" prefix="ww" %>
<html>
<head>
<title>WebWork Tutorial - Lesson 3 - Example 1</title>
</head>
<body>

<ww:property value="hello" />

</body>
</html>

6。配置 xwork.xml
   在<package name="default" extends="webwork-default"> 和 </package> 之间加入如下代码片断:
  <!-- Default interceptor stack. -->
  <default-interceptor-ref name="defaultStack" />
  
  <!-- Action: Lesson 03: HelloWebWorldAction. -->
  <action name="helloWebWorld" class="lesson03.HelloWebWorldAction">
   <result name="success" type="dispatcher">ex01-success.jsp</result>
  </action>
    
修改后的xwork.xml如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>
 <!-- Include webwork defaults (from WebWork-2.1 JAR). -->
 <include file="webwork-default.xml" />
 
 <!-- Configuration for the default package. -->
 <package name="default" extends="webwork-default">
  
  <!-- Default interceptor stack. -->
  <default-interceptor-ref name="defaultStack" />
  
  <!-- Action: Lesson 03: HelloWebWorldAction. -->
  <action name="helloWebWorld" class="lesson03.HelloWebWorldAction">
   <result name="success" type="dispatcher">ex01-success.jsp</result>
  </action>
    
 </package>
</xwork>

7。至此,第一个webwork例子建好了,启动Tomcat,
   在浏览器里输入:http://localhost:8080/Z_Webwork/lesson03/example01/ex01-index.jsp
   我们将看到如图页面:
  

   点击“Hello”按钮将出现页面:

 

[例子分析]

这是我做的第一个webwork程序,在这之前我就听说webwork比起struts来说是一种简洁而且优雅的MVC模式的实现框架,这样一看果不其然。

配置简单:在第一个例子里,实际需要我们配置的代码就只有xwork.xml中的一部分action片断

taglib使用方便:这个例子使用了webwork自带的taglib,感觉很棒,以后我会试试velocity,看看感觉如何

WebWork2官方文档完整中文版指南 本文还有配套的精品资源,点击获取 简介:WebWork2是一款支持Java的开源MVC框架,用于构建企业级Web应用。该中文版文档为开发者提供了全面的资源,涵盖核心概念、架构和使用方法。文档详细介绍了WebWork2的多项特点,如动作映射、拦截器机制、类型安全参数绑定、异常处理、国际化/本地化支持、视图层灵活性、注解支持、版本控制、测试工具以及最佳实践和示例代码,从而帮助开... 阅读详情

相关推荐

WebWork2基础教程与实战指南

本文还有配套的精品资源,点击获取 简介:WebWork2是一个基于Java的轻量级Web应用框架,采用了高效的MVC架构。作为Apache组织的一部分,WebWork2在某些方面超越了Struts,提供了丰富的动作和类型转换机制,简化了HTTP请求的处理。本教程将深入讲解WebWork2的核心概念、优势以及如何在实际开发中应用。教程将覆盖动作与拦截器、数据绑定和类型转换、表...

weixin_42452483的博客 1137

webwork2入门(一)

  本文采用一个用户注册的例子,起到一个最简单的webwok2上手作用 用到的类:  Domain Object : User 类 Action Object :RegisterAction 类 用到的页面: register .jsp success.jsp 一.在webwork官网(http://www.opensymphony.com/webwork/download.action)下载最新...

SAN_YUN的专栏 787

webwork2.2

webwork2.2.jar 类包 web work2

webWork2.2的简单配置介绍!

很长时间没写笔记了,研究了一段时间的webwork,今天写点学习笔记之类的东西。Webwork是一个MVC框架,和其他MVC框架一样,分离web开发中的,控制,模型和视图。个人感觉,她的配置更加简单和优雅,更容易新人上手。同时,业务逻辑也更加清晰,对软件的维护和扩展有很大的帮助。(有多少帮助也不是很清楚,还是讲讲配置把!)需要的包,去baidu或者google都能找到很多。现在常用的版本是

qianlei0007的专栏 1118

webwork-2.1.7.jar

webwork2依赖的jar包,欢迎下载使用

Webwork2开发指南

webwork2 开发指南,带例子,入门实例很好的教程。

webwork2.2.4 学习笔记<一>

[b]web.xml[/b] [b]1[/b]. 如果要用到WebWork的最新特性并且不需要考虑向后兼容问题,您只需要在web.xml中添加一个单独的过滤器(如下); webwork com.opensymphony.webwork.dispatcher.FilterDispatcher webwork /* org.spr...

ishuang的专栏 163

webWork2开发指南

webWork2开发指南 中文版

struts学习笔记(一)——关于struts1、webwork、struts2

[b]struts1[/b] 2001年6月发布struts1 struts1的核心是控制器,由两部分组成:核心控制器和业务逻辑控制器,核心控制器是ActionServlet,由struts1提供;业务逻辑控制是用户自定义的action,由应用开发者提供。 整个应用由客户端请求驱动,客户端向web发送的请求被struts1的核心控制器ActionServlet拦截,ActionServlet...

翡翠梦境 243

webwork-2.2.2

webwork的包。webwork开发者不可缺少的

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

让您从源码下载到本地运行一步到位!此外,文中还将附带详细代码解析与操作步骤,即便没有开发经验,也能轻松完成二开与定制。数据库是棋牌游戏中极为关键的组成部分,用于存储用户信息、乐豆余额、游戏记录、提现申请等数据。以下是部分核心数据表结构示例,便于存储用户信息与游戏记录。AI模块能够控制游戏中的胜率,常用于调节玩家体验。防沉迷功能旨在限制未成年人游戏时间。的完整搭建流程,特别适合。首先,获取七星棋牌源码。本教程将为您详细讲解。

aa2031171的博客 7778

spring与webwork集成2

第一部分:WebWork2.1与Spring集成两种方法:法一:先WebWork后Spring(利用webwork2-spring.jar集成)该方法的执行顺序是先WebWork,后Spring。即,首先在xwork.xml中找到待执行的action,如果该action依赖其他bean,再到applicationContext.xml中查找被依赖的bean。WebWork2的I

xzjguest的专栏 1016

从零到一:NI USB-8506 LIN通讯的驱动安装与硬件调试全攻略

本文详细介绍了NI USB-8506 LIN通讯设备的驱动安装与硬件调试全流程,包括硬件准备、驱动下载与配置、NI MAX设置及常见问题解决方案。通过实战应用与性能优化技巧,帮助用户快速掌握LIN通讯技术,适用于车载数据记录和自动化测试等场景。

weixin_28273593的博客 924

webwork学习笔记

webwork学习笔记------------------------------作者: kingfish(vc--@sohu.com)关键字: webwork1.4, tomcat5--------------------------------------本人最近学习webwork,发现资料很少(如果您有,请发一份给我,先谢啦),由于是开源项目,就粗略的看了看源码. 以下是我看后整理的一份笔记

kingfish的专栏 2158

Arduino+NRF24L01 无线遥控舵机与无刷电机系统搭建指南

本文详细介绍了使用Arduino和NRF24L01模块搭建无线遥控系统的完整指南,涵盖舵机和无刷电机的无线控制。从硬件选型、电路连接到代码编写与调试,提供了实用技巧和常见问题解决方案,帮助DIY爱好者低成本实现稳定可靠的无线遥控应用。

sre5engineer的博客 588

MTK Linux Charger驱动分析(二) - power_supply_core.c

的核心作用可以概括为:提供统一的电源管理框架;管理电源设备注册、属性访问、事件通知;封装sysfs 接口和 uevent 通知,屏蔽硬件细节;驱动开发者只需要实现,不关心底层通知和接口细节。简单来说,它是电源子系统的“大脑和中枢”,具体的电池/充电器只是“信息源”。

iTom1900 1489

Webwork2

 webwork.properties           Webwork属性配置文件。Webwork有个缺省的属性配置文件default.properties,在webwork.jar文件中,你可以建立一个webwork.properties      文件重新设置相关属性,相同属性的设置webwork.properties将覆盖default.properties的设置。下面是个default

能想多远,就能走多远 1372

图形学基础知识:着色(三)Rendering Pipeline与Shader

管线(Pipeline) 什么是管线? 管线我们可以理解为流水线,流水线大家都懂,就是工厂里面生产东西的一整套流程。例如饮料厂要生产饮料,需要洗瓶子,倒饮料,加盖,包装等等,这一整套过程就是流水线。那么我们要把一个三维场景渲染成一幅二维的图像,同样需要一个先干嘛再干嘛然后干嘛最后干嘛的过程,这个过程或流水线,我们就称之为管线。 实时渲染管线(Real-time Rendering Pipeline) 通过前面几篇的学习,我们知道了要把一个三维场景渲染成一幅二维的图像大致分为以下几个步骤: M.

王王王渣渣的博客 2532

webwork项目移植到struts2

Webwork项目要转到struts2:一、变化struts2代码始于webwork2.2.3,少许的比较大的改动可能会影响你的webwork2.2应用的移植1、一些被Deprecated掉的方法和类已经被移除,这包括XWork Inversion of Control (IoC) 框架。2、使用xhtml 主题的一些工具库被DOJO的工具组件替代。3、使用FCK editor

husw_2008的专栏 1293

AUTOSAR-WdgM篇

Wdg通常有两种:一种是芯片内部自带的片内看门狗,另一种是在芯片外部通过SPI这种接口连接的片外看门狗。MCAL只负责常用的有MCU内部看门狗,片内看门狗的特点是Wdg模块是直接访问相关硬件寄存器。内部看门狗依赖于系统时钟片外看门狗属于设备抽象层负责,通常需要使用MCAL提供的其他模块(比如SPI,DIO,PWM等)来访问/控制外扩看门狗芯片。这种不能直接访问硬件寄存器。Wdg Driver:有三种模式slow mode,fast mode ,off mode。

qq_329563867的博客 5830

10、硬件工程师笔试面试——继电器(2025版本)

在设计电路时,应综合考虑SSR的优势和局限性,确保选择合适的型号,并采取适当的设计措施来优化性能和可靠性。继电器的主要功能是利用较小的电流或电压来控制较大电流或电压的电路,实现信号的放大和隔离。在处理继电器故障时,应综合考虑电源、线圈、触点和负载等因素,及时进行故障诊断和处理,以确保电路系统的稳定性和安全性。由于汽车电子系统的复杂性,继电器的设计和选择必须考虑到系统的特定要求,包括电流容量、电压等级、环境条件(如温度、湿度、振动)以及所需的保护和隔离功能。确定线圈的工作电压或电流,以及吸合电压或电流。

XU157303764的博客 3733

java webwork_[Java教程]Webwork 学习之路(一)Webwork与 Struct 的前世今生_星空网

Webwork 学习之路(一)Webwork与 Struct 的前世今生2015-12-040Struts 1是全世界第一个发布的MVC框架,它由Craig McClanahan在2001年发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts 1框架更加成熟、稳定,性能也有了很好的保证。到目前为止,Struts 1依然是世界上使用最广泛的MVC框架...

weixin_35739967的博客 220

Python爬虫实战:手把手教你园林植物分类全维度字典自动化采集实战!

我长期专注 Python 爬虫工程化实战,主理专栏 👉 《Python爬虫实战》:从采集策略到反爬对抗,从数据清洗到分布式调度,持续输出可复用的方法论与可落地案例。内容主打一个“能跑、能用、能扩展”,让数据价值真正做到——抓得到、洗得净、用得上。

喵手的博客 388

WebWork2.2 Released!

 WebWork2.2新版本于昨天发布,更新了很多特性及功能支持,这个版本非常值得我们期待,大家去WebWork中文站点下载吧...OpenSymphony 和 WebWork 团队自豪的公告 WebWork 2.2 的发布 (download now). 这次发布对WebWork来说是最重要的发布,这么说的理由如下(full release notes): 对Java 5标注和泛型的全面支持 丰

技术含量 1234

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

为OpenSource担忧---从在weblogic下使用webwork2说起

时下OpenSource风起云涌铺天盖地,笔者也是OpenSource的支持者之一;但这两天发现的在weblogic下使用webwork2时的问题让笔者为OpenSource的发展捏了把汗.....opensymphony是笔者比较喜欢的开源组织之一,从学习osworkflow开始就知道它旗下有诸多短小精悍的软件,WebWork就是其中之一;WebWork现在已经是名声远播了,在国内的使用率也非常

【洪波@阿里云】 3192

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

我的webwork2的cookie拦截器

webwork中没有cookie的映射,只有session的映射. 参考了moxie的cookie拦截器,自己写了一个拦截器,不知道是不是能用 :P拦截器代码如下: package com.cnscud.util.interceptor; import javax.servlet.http.Cookie;import javax.servlet.http.HttpSer

飞云小侠(scud)专栏 5156

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: 利用Eclipse,LOMBOZ plugins,JBoss开发J2EE教学
下一篇: ibatis初步介绍
JasonSeaver
博客等级 码龄25年 2粉丝 20原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值