用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
JasonSeaver的公告
&nbsp;&nbsp;&nbsp;&nbsp;我时常思考人生以至于夜不能寐,我也明白这种思考多半没有结果,而且会令自己看起来有点儿傻,可这毕竟已经成了一种习惯,我不想改变,全当是对于一种习惯的怀旧吧。<br><br> <embed src="http://bbs.smgbb.cn/Skins/Default/clock.swf" width="150" height="150" align="middle" scale="noborder" bgcolor="#F5F5F5"></embed> <!-- <hr size=1> 你是第 <script src="http://www.xcinfo.ha.cn/jsq/default.asp?User=letmelogin&Length=7&x=9&y=12&Mode=071"></script>位访客 --> <hr size=1> Email:<a href=mailto:w_ziyi@126.com><font color=ff0000>w_ziyi@126.com</font></a> <br> POPO:<font color=ff0000>w_ziyi@163.com</font> <br> MSN:<font color=ff0000>w_ziyi@hotmail.com</font> Blog:<a href='http://crazyziyi.blogdriver.com/' target='_blank'>crazyziyi.blogdriver.com</a>
文章分类
官方站点
Apache Home
Eclipse Home
iBATIS.com
Java Home
Webwork Home
技术爱好者
asklxf's Blog
Che, Dong'Blog
chenyun2000's Blog
Gigix's Blog
glchengang's blog
Hedong's Blog
HongSoft
Moxie's Blog
openjavaproject
sinapaper's Blog
swallor's blog
技术专区
ChinaJavaWorld技术论坛
CSDN社区
Hibernate中文站点
Huihoo's Home
IBM developerWorks
SpringFramework中文论坛
朋友的Blog
Longware's Blog
Ten's Blog
Virus's Blog
西瓜的Blog
其他站点
crack
Eclipse Plugins
QCA.cn
源码文档
CSDN开发者文档搜索
SourceForge
红辣椒
存档

原创  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,看看感觉如何

发表于 @ 2004年07月12日 22:17:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:利用Eclipse,LOMBOZ plugins,JBoss开发J2EE教学 | 新一篇:JDOM/XPATH编程指南

  • 发表评论
  • 评论内容:
  •  
Copyright © JasonSeaver
Powered by CSDN Blog