摘要
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.");
}
}
<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>
<%@ 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>
<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>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器