网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > J2EE/J2ME
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.EJB的SessionBean编程规则.
.Java语言程序员人生:J2ee的学习流.
.Servlet中jdbc应用高级篇之一.
.J2EETM蓝图摘要.
.将Javaimage对象转换成PNG格式字.
.JavaMail快速入门-4.
.手机游戏策划模板.
.解决Netbeans和Eclipse中的图片路.
.使用Canvas制作简单的游戏菜单.
.介绍MIDP的属性问题.
.EnterpriseJavaBeans导论四.
.Canvas及其支持的按键事件测试小.
.WebService开发的层次.
.简单图形验证码的识别.
.HTTP联网开发小例子.
.关于管理蓝牙SDP记录和游戏服务器.
.如何使用WebSphere6.0RapidDevel.
.将J2EE程序从weblogic移植到JBos.
.Java数据对象(JDO)介绍(四).
.Velocity入门.

快速开发web程序:用WebWork、JSP、Velocity建立注册页面

发表日期:2007-12-23


摘要
    WebWork是一个源代码开放的Web应用框架,用于简化基于Web的应用开发。本专栏介绍了WebWork并且描述了如何使用WebWork和JavaServer Pages(jsp)、Velocity两种技术来建立注册界面的过程。(1000字;2003年3月7日)

---------
    Web 应用程序的设计开发是复杂并且费时的。然而,你能够通过运用一种框架处理常见的Web应用程序来简化开发流程。许多开源Web应用框架能够做到这一点甚至更好一些。这些开发框架中最好的一个就是WebWork,是开源项目中OpenSymphony组的一个Web应用开发框架。

   WebWork的最大优点是它的简单性和灵活性。WebWork有一个很小的API,它使开发者可以迅速进行开发工作。WebWork是许多特性和适用性的组合,包括使用variour view技术,例如JavaServer Pages(JSP),Velocity,Extensible Stylesheet Language Transformations
Specification(XSLT)和JASPerReporters。WebWork拥有一个活跃的社区,有许多文章、开发者和用户。

    注意:本文基于WebWork1.3.0 release candidate 2(RC2)。为了使用本文提供的例子,你需要在你的应用服务器的webapps目录下建立文件夹,将例子拷贝至新的文件夹下,同时将所需的jar文件从WebWork distribution拷贝至WEB-INF/lib目录。在此处下载WebWork和本文相关的源代码。

------
actions

      WebWork的一个最重要的特色就是Action接口。WebWork actions通过在页面(视图)和商业逻辑间提供mapping来控制Web应用程序流程。在WebWork中,提交窗体到一个action URI(Uniform Resource Identifier);这个URI指向一个相应的action;action执行;用户可以前进到相应的视图。

   下述class,LoginAction,是WebWork处理基于Web应用的注册窗体的例子。LoginAction扩展了ActionSupport。它是一个基类,提供了处理错误、视图映射、和许多有用的功能。

import webwork.action.*;

public class LoginAction extends ActionSupport
{
  private String userName;
  private String passWord;

  public String getPassword()
  {
    return password;
  }

  public String getUserName()
  {
    return userName;
  }

  public void setPassword(String password)
  {
    this.password = password;
  }

  public void setUserName(String userName)
  {
    this.userName = userName;
  }

  public String doExecute()
  {
    return SUCCESS;
  }

  public void doValidation()
  {
    if (userName == null userName.length() < 1) addError("UserName", "Please enter username.");
    if (password == null password.length() < 1) addError("Password", "Please enter password.");
  }
}


    LoginAction包括了两个JavaBean属性,password和username。
WebWork把数据从属性中放置到你的视图中并且自动解析送到action的参数来设置属性值。

   LoginAction重载了ActionSupport的两个方法:doValidation()和doExecute()。doValidation()方法验证参数,doExecute()方法让用户前进到相应的视图。doExecute()方法返回一个字符串,如果所有的处理是成功的,返回常量success。如果有任何问题发生,在用户输入视图上返回常量input。在LoginAction的doValidation()方法中调用addError指出了一个认证问题并且让用户返回INPUT视图。

---------

view mapping
   WebWork有两种方法从map到视图:通过一个Action.XML文件或者一个views.properties文件。每一种动作应该具有一个INPUT视图和一个SUCCESS视图。下述Action.xml文件定义了两个actions,loginJSP和loginVelocity。这两个action都使用了LoginAction类。如果LoginAction返回SUCCESS,这两个action使用LoginAction类并且使用户转向success.Html。如果LoginAction返回INPUT,action转向相应的INPUT视图,或者login.jsp、或者login.vm;

<actions>

  <action name="LoginAction" alias="loginJSP">
    <view name="input">login.jsp</view>
    <view name="success">success.html</view>
  </action>

  <action name="LoginAction" alias="loginVelocity">
    <view name="input">login.vm</view>
    <view name="success">success.html</view>
  </action>

</actions>


--------
视图
    尽管WebWork对于许多不同的视图技术提供了支持,但是最为常见的是JSP和Velociy。以下页面是两个注册页面的例子--一个使用了JSP另一个使用了Velocity。每个页面都包括了一个用户部分和一个密码部分,这两部分提交给WebWork action。

    Login.jsp页面通过使用WebWork标记库来建立和处理以上两个部分,并且通过错误收集器来处理错误。webwork:textfield 和 webwork:password标记建立了text和password部分,webwork:iterator标记处理从LoginAction返回的错误。 webwork:property标记设置username,password和errors属性。

<%@ taglib uri="webwork" prefix="webwork" %>

<html>

  <head>
    <title>WebWork JSP Example</title>
  </head>

  <body>

  <form action="loginJSP.action" method="post">

    <webwork:property>
      <webwork:textfield label="'Name'" name="'userName'"/>
      <webwork:password label="'Password'" name="'password'"/>
    </webwork:property>

    <input type="submit" value="Submit"/>
  </form>

  <webwork:iterator value="errors">
    <br><webwork:property/>
  </webwork:iterator>

  </body>
</html>


    login.vm页面使用了Velocity模板语言来建立域并且处理错误。
在Velocity中,$符号表明了一个参考。!符号告诉Velocity如果参考为空,那么什么都不显示。#符号表示了一个指令。在下述例子中,$!userName和$!password表明参考引用了LoginAction中的username和password;#foreach在错误处理属性中指示了循环。

<html>

  <head>
    <title>WebWork Velocity Example</title>
  </head>

  <body>

  <form action="loginVelocity.action" method="post">
    <input type="text" name="userName" value="$!userName"/>
    <input type="text" name="password" value="$!password"/>
    <input type="submit" value="Submit"/>
  </form>

  #foreach ($error in $errors)
<br>$error
  #end

  </body>

</html>


---------------
开始工作!
   WebWork是一个易用的、灵活的、功能强大的开源Web应用框架,本文介绍了它的基本功能。访问OpenSympony的网站去学习并且下载最新版本的WebWork。你下载完WebWork后,到Jakarta的网站的上部去寻找Velocity,一种简单、快速的开源引擎,它是你在网页中使用JSP的另一个选择。
-----------------
作者介绍

   Erik Swenson 是Open Source Software Solutions的顾问和建立者。他主要研究使用开源软件和组件来进行java开发。此外,他参与开发了开源项目JasperEdit和OpenReports。
------------------
资源
下载本文相关的源代码
http://www.javaworld.com/javaworld/jw-03-2003/opensource/jw-0307-opensourceprofile.zip

从OpenSymphony网站下载WebWork:
http://www.opensymphony.com/webwork/

Velocity 是Apache Jakarta项目的一部分,从以下地址下载:
http://jakarta.apache.org/velocity/index.html

“使用Velocity模板引擎” Geir Magnusson Jr. (JavaWorld,  2001年12月):
http://www.javaworld.com/javaworld/jw-12-2001/jw-1228-velocity.html

其他开源Web应用框架包括:
Maverick:
http://mav.sourceforge.net/
Struts:
http://jakarta.apache.org/struts/index.html
JasperReports homepage:
http://jasperreports.sourceforge.net/

(出处:)


上一篇:利用Jsp+Taglib+JavaBean快速构建动态数据库查询模板 人气:667
下一篇:配置好Eclipse+WTK2.2环境后.实现在手机模拟器上显示HelloW 人气:1804
浏览全部J2EE/J2ME的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐