第二章: WebWork方式的HelloWorld
一. 准备skeleton
1. 所需文件:
a. WebWork发布包下: webwork-2.2.4.jar
b. WebWork发布包下: \lib\default\*.jar
2. web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<jsp-config>
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>
/WEB-INF/lib/webwork-2.2.4.jar
</taglib-location>
</taglib>
</jsp-config>
</web-app>
3. xwork.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-action-ref name="home" />
</package>
</xwork>
4. webwork.properties配置文件:
webwork.tag.altSyntax=true
二. 第一个Action
1. action类:
package ch2.example1;
import com.opensymphony.xwork.Action;
public class HelloWorld implements Action {
private String message;
public String execute() throws Exception {
message = " Hello, World!\n";
message += "The time is:\n";
message += System.currentTimeMillis();
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2. JSP:
<%@taglib uri="webwork" prefix="ww"%>
<html>
<head>
<title>Hello Page</title>
</head>
<body>
<The message generated by my first action is:
<ww:property value="message"/>
</body>
</html>
3. xwork.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-action-ref name="home" />
<action name="helloWorld" class="ch2.example1.HelloWorld">
<result name="success">index.jsp</result>
</action>
<!-- Add your actions here -->
</package>
</xwork>
4. 运行
在地址栏内输入: http://localhost:8080/helloWorld.action
三. 处理输入
1. 增加一个表单页面hello.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Enter your name</title>
</head>
<body>
Please enter your name:
<form action="helloWorld.action">
<input type="textfield" name="name"/>
<input type="submit"/>
</form>
</body>
</html>
2. 在之前HelloWorld的Action中增加name名称属性以及对应setName()和getName()方法;
3. 运行
在地址栏内输入: http://localhost:8080/hello.jsp, 输入姓名后,在结果页面中可看到输入内容。
四. 高级控制流(增加表单验证以及验证出错提示)
1. action
public String execute() throws Exception {
if(name==null || "".equals(name) || "World".equals(name)) {
message = "Blank names or names of 'World' art not allowed!";
return INPUT;
}
message = " Hello, " + name + "!\n";
message += "The time is:\n";
message += System.currentTimeMillis();
return SUCCESS;
}
2. hello.jsp
<%@taglib uri="webwork" prefix="ww" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Enter your name</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"/>
<input type="submit"/>
</form>
</body>
</html>
五. 让WebWork完成任务
需求:1. 在出错的输入控制处理显示输入数据的错误信息;
2. 保证之前输入的值能够显示出来;
1. action
a. 继承ActionSupport
b. 改写execute()方法:
public String execute() throws Exception {
if(name==null || "".equals(name) || "World".equals(name)) {
addFieldError("name","Blank names or names of 'World' art not allowed!");
return INPUT;
}
message = " Hello, " + name + "!\n";
message += "The time is:\n";
message += System.currentTimeMillis();
return SUCCESS;
}
2. hello.jsp
<%@taglib uri="webwork" prefix="ww" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Enter your name</title>
</head>
<body>
<ww:form action="helloWorld">
<ww:textfield label="Please enter your name" name="name"/>
<ww:submit/>
</ww:form>
</body>
</html>
分享到:
相关推荐
webwork in action 第一部分:概貌 第二部分:核心内容 第三部分:内容的显示 第四部分:高级话题
webwork in action_第1部分-WebWork简介_第2章-WebWork方式的Hello World
- **类型转换**:第十二章介绍了WebWork中的类型转换机制,帮助开发者处理表单提交的不同数据类型。 - **表单数据验证**:第十三章讲解了如何对用户提交的数据进行验证,确保数据的有效性和安全性。 - **国际化**:...
webwork in action 中文版
webwork in action 中文版
webwork in action 中文版
《WebWork in Action》是一本专注于介绍WebWork框架的书籍,源代码的提供是为了让读者更深入地理解和实践书中的示例。WebWork是一个基于Java的MVC(模型-视图-控制器)框架,用于构建动态Web应用程序。它强调了代码...
webwork in action 的中文版,影印,高清晰,本人阅读中。非常不错。文件太大了,分了 15个压缩文件。每个文件1分。
真正的webwork in Action中文清晰完整版,还附有书上的示例代码,不同于其它的章节摘录版,模糊版,英文版...学习webwork的最佳教材
webwork in action 电子书 第二部分,
in action系列想必同行人士都是知道的,相当的好,请大家下载来看,可以说得上是webwork的权威了
从书名“WebWork in Action”及简短的描述“WebWork in action”,可以看出这本书旨在通过实践的方式教授读者如何使用WebWork这一Java Web应用开发框架。下面我们将从几个关键章节入手,深入挖掘其中涉及的重要知识...
webwork in action 第一部分:概貌 第二部分:核心内容 第三部分:内容的显示 第四部分:高级话题
《Webwork.in.Action》是一本深入探讨Webwork框架的书籍,中文版的出现使得国内开发者能够更方便地学习和理解这一强大的Java web开发框架。Webwork是由一系列组件组成的MVC(Model-View-Controller)框架,它在Java...
Webwork In Action中文版第二部分(part2)
"WebWork in Action"是一本专著,深入探讨了这个框架的各个方面,包括其设计理念、核心组件以及如何有效地利用它们来开发高效、可维护的Web应用。这本书通常会涵盖以下关键知识点: 1. **MVC架构**:WebWork遵循MVC...
webwork.in.action中文pdf版 part5