本周三利用空余的时间把医院HIV月报构建在了Struts2框架上,真的很简单,代码量比 Struts1.x 少了一半。
WebWork 创始人 Reckard Oberg 在构建 WebWork 原始版本的时候说:“框架的强大之处不在于它能让你做什么,而是你没必要做什么。”
Struts2 抛弃了原先 Struts 的原始框架,构建在 xwork 之上。Struts2继承了WebWork2 清爽的架构及代码编写风格。
下面就开始 WebWork2 之旅吧,感受一下代码编写是多么的简单和清晰。
从http://www.opensymphony.com/webwork下载最新的完整的开源包并解压。
新建 Web Project。
把 xwork.jar common-logging.jar oscore.jar velocity-dep.jar ognl.jar webwork-2.2.4.jar 复制到WEB-INF/lib目录下,修改
web.xml文件内容如下:
xml 代码
- <!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>
- <filter>
- <filter-name>webwork</filter-name>
- <filter-class>
- com.opensymphony.webwork.dispatcher.FilterDispatcher
- </filter-class>
- </filter>
- <filter-mapping>
- <filter-name>webwork</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <taglib>
- <taglib-uri>webwork</taglib-uri>
- <taglib-location>
- /WEB-INF/lib/webwork-2.2.4.jar
- </taglib-location>
- </taglib>
- </web-app>
新建action: HelloWorld.java 实现 Action 接口,并且必须实现 execute() 方法
java 代码
- package org.vv.action;
- 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;
- }
- public String execute() throws Exception {
- if (name == null || "".equals(name) || "World".equals(name)) {
- message = "Blank names or names of 'World' are not allowed!";
- return INPUT;
- }
- message = "Hello, " + name + "!\n";
- message += "The time is:\n";
- message += System.currentTimeMillis();
- return SUCCESS;
- }
- public String getMessage() {
- return message;
- }
- }
在classes目录下新建
xwork.xml文件,最终内容如下:
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="default" extends="webwork-default">
- <default-interceptor-ref name="completeStack" />
- <action name="helloWorld" class="org.vv.action.HelloWorld">
- <result name="success">hello.jsp</result>
- <result name="input">name.jsp</result>
- </action>
- </package>
- </xwork>
新建 name.jsp 页面文件,内容如下:
jsp 代码
- <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
- <%@ taglib prefix="ww" uri="webwork"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title></title>
- </head>
- <body>
- <ww:if test="message!=null">
- <font color="red"> <ww:property value="message" /> </font>
- </ww:if>
- Please enter your name:
- <form action="helloWorld.action">
- <input type="textfield" name="name"
- value="<ww:property value="name"/>" />
- <input type="submit">
- </form>
- </body>
- </html>
新建 hello.jsp 页面文件,内容如下:
jsp 代码
- <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
- <%@ taglib prefix="ww" uri="webwork"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title></title>
- </head>
- <body>
- The message generated by my first action is:
- <ww:property value="message" />
- </body>
- </html>
注意:<ww:property value="message" /> 中的 message 得到的是 HelloWorld 中getMessage()方法的返回值,而非 message 属性。
ok,5个短小的文件,构成了一个轻量级的应用。在实际应用中,一般是继承ActionSupport 类,通过addFieldError("name",String)来达到验证效果。
上面的代码只需修改两个地方。
HelloWorld.java类:
java 代码
- public class HelloWorld extends ActionSupport {
- ……
- public String execute(){
- if(……)
- addFieldError("name","Blank names or names of 'World' are not allowed!")
- ……
- }
- ……
- }
name.jsp更改:
jsp 代码
- <ww:if test="message!=null">
- <font color="red">
- <ww:property value="fieldErrors['name']" />
- </font>
- </ww:if>
----------------------------------------
和 Struts2 一样WebWork2 的 UI 标签库极大地简化了JSP页面,name.jsp最终更改为:
jsp 代码
- <ww:form action="helloWorld">
- <ww:textfield label="Please enter your name:" name="name" />
- <input type="submit" />
- </ww:form>
ww:textfield已经包含了错误信息了。
- webwork2.rar (4 MB)
- 描述: WebWork2 --- HelloWorld 参考《WebWork in Action》
- 下载次数: 87
分享到:
相关推荐
NULL 博文链接:https://goowolf.iteye.com/blog/507075
WebWork-2.1.7 中文开发文档-小白
安装WebWork前,需先从官方网站下载最新版本的WebWork压缩包,解压后可获得关键文件和目录,包括webwork-2.x.jar(主库)、webwork-example.war(示例应用)、webwork-migration.jar(迁移工具)等,以及docs(文档...
2. **查看文件结构**:解压后的文件夹通常包含`webwork-2.x.jar`(主库)、`webwork-example.war`(示例应用)、`webwork-migration.jar`(迁移工具)等文件以及`docs`和`lib`目录。 3. **搭建开发环境**:确保安装...
本文将详细介绍如何使用WebWork来实现一个基础的"HelloWorld"示例,这对于初学者来说是一个很好的起点。 首先,你需要准备一个运行环境,比如已经安装并配置好的Tomcat服务器。接着,你需要从网上下载WebWork的最新...
webwork in action_第1部分-WebWork简介_第2章-WebWork方式的Hello World
- 通过上述步骤,我们创建了一个简单的WebWork应用程序,当用户访问`http://localhost/helloWorld.action`时,服务器将调用`HelloWorld`类中的`execute()`方法,构造一条消息,并将该消息展示在结果页面上。 - 这...
"webwork之HelloWorld篇"是入门WebWork框架的一个基本教程,通常包括创建一个简单的Web应用程序并展示“Hello, World!”的输出。 在Eclipse中创建一个Hello Web工程,首先你需要安装必要的插件,如JSTL和MyEclipse...
通过这个简单的“HelloWorld”例子,你可以学习到WebWork的基本架构和工作流程,这对于进一步学习WebWork乃至Struts2等其他MVC框架都是非常有帮助的。此外,理解Action、配置文件、拦截器等概念,对于任何Java Web...
这个“WebWork入门例子 HelloWorld”是为初学者准备的一个简单教程,旨在帮助他们快速理解WebWork框架的基本概念和工作原理。 WebWork的核心特性包括动作映射、数据绑定、拦截器、异常处理和强大的视图渲染。它通过...
"webwork_helloworld"项目是为初学者准备的一个基础示例,旨在帮助理解WebWork框架的基本工作原理和用法。在这个项目中,你可能会遇到一些问题,这些问题可能是配置错误、代码不正确或运行时环境设置不当导致的。 ...
从简单的"Hello, World!"程序到复杂的业务场景,逐步引导读者理解Webwork2的工作原理和最佳实践。 总的来说,Webwork2 是一个强大且灵活的Web开发框架,通过理解其核心概念和特性,开发者可以构建出高效、可维护的...
第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...
**WebWork安装-HelloWorld** 在开始WebWork的开发之前,首先需要进行WebWork的安装。这通常包括下载WebWork的JAR文件并将其添加到项目的类路径中,配置web.xml以启动WebWork的前端控制器。然后,创建一个简单的...
`HelloWorld.java`是Action类,它继承自`ActionSupport`,并实现了一个返回"Hello World!"的`execute()`方法。`hello.jsp`是视图页面,使用WebWork的标签库`ww`来显示结果。 ```java // HelloWorld.java package ...
- **解压**: 包含`webwork-2.x.jar`主库、示例应用`webwork-example.war`、迁移工具`webwork-migration.jar`、文档目录`docs`、依赖库目录`lib`以及源码目录`src`。 - **部署**: 将`webwork-2.x.jar`及`lib\core`下...