本周三利用空余的时间把医院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安装与HelloWorld WebWork的安装过程通常包括以下几个步骤: - **下载WebWork框架**:从官方或第三方网站获取WebWork的jar包。 - **配置Web应用**:在Web应用的`WEB-INF/web.xml`中配置WebWork的过滤器和...
webwork in action_第1部分-WebWork简介_第2章-WebWork方式的Hello World
"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 the WebWork way!
怎么用WebWork来实现HelloWord.docx 内容详细讲了一个初学者搭建WEBWORK实现HELLOWORLD的过程。 自己摸索的,在GOOGLE上找很多方法,可能人家都是高手写的,总是有一两个点调试不过去。 这个可以用。 适合初学者……
从简单的"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 ...
"HelloWorld"是一个常见的示例,用于验证WebWork环境是否正确设置。在完成这些步骤后,可以通过访问特定URL来触发这个动作,显示“Hello, World!”的欢迎信息。 **Action(动作)** Action是WebWork的核心组件,它...
通过这个HelloWorld示例,开发者可以更好地了解WebWork2如何接收请求、执行业务逻辑以及展示结果,从而为更深入的学习和实际项目开发奠定基础。WebWork与Struts的相似之处在于Action的使用和配置方式,使得从Struts...
### WebWork 安装 - HelloWorld 安装WebWork 2.0通常涉及以下步骤: 1. 获取WebWork库,可以通过Maven或直接下载JAR文件。 2. 配置`web.xml`文件,将WebWork的Servlets和过滤器添加到Web应用配置中。 3. 创建基本的`...
4. 创建一个简单的HelloWorld Action,继承自WebWork的基础Action类,并实现一个执行方法。 在HelloWorld示例中,你将创建一个简单的Action类,其中包含一个名为execute的方法,该方法返回一个字符串结果,这个结果...
**二、WebWork安装 - HelloWorld** WebWork的安装通常包括以下步骤: 1. **添加依赖**:将WebWork的JAR文件添加到项目的类路径中。 2. **配置web.xml**:在Web应用的配置文件中,添加WebWork的过滤器和监听器。 3....
创建一个简单的`HelloWorld`Action,你需要定义一个Java类,继承自WebWork的基础Action类,比如`com.opensymphony.xwork2.ActionSupport`,并实现一个返回字符串结果的方法。例如: ```java public class ...