📄 用webwork、jsp、velocity建立注册页面 - 织梦内容管理系统.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0063)http://www.dedecms.com/web-art/JSPjiaocheng/20050213/21975.html -->
<HTML xml:lang="zh-cn" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>用WebWork、JSP、Velocity建立注册页面 - 织梦内容管理系统</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content=" 注册 页面 建立 WebWork LoginAction Web Velocity " name=keywords>
<META
content="摘要 WebWork是一个源代码开放的Web应用框架,用于简化基于Web的应用开发。本专栏介绍了WebWork并且描述了如何使用WebWork和JavaServerPages(JSP)、Velocity两种技术来建立注册界面的过程。 Web应用程序的设计开发是复杂并且费时的。然而,你能够通过运用一种框架处"
name=description><LINK
href="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/dede.css" type=text/css
rel=stylesheet><LINK
href="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/article.css"
type=text/css rel=stylesheet><!-- Digg 参数 -->
<SCRIPT language=javascript
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/dedeajax2.js"></SCRIPT>
<SCRIPT language=javascript>
function Digg(divId,aid){
var taget_obj = document.getElementById(divId+''+aid);
var myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet2("/digg.php?action=digg&aid="+aid);
DedeXHTTP = null;
}
</SCRIPT>
<STYLE>.context {
CLEAR: both; WIDTH: 638px
}
.diggArea {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; BACKGROUND-IMAGE: url(/plus/img/diggbg2.gif); PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 60px; LINE-HEIGHT: 23px; PADDING-TOP: 0px; HEIGHT: 58px
}
.diggNum {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 12px; PADDING-BOTTOM: 0px; MARGIN: 8px 0px 0px; WIDTH: 58px; COLOR: #cc0000; PADDING-TOP: 0px; HEIGHT: 23px; TEXT-ALIGN: center
}
.diggLink {
PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; FONT-SIZE: 14px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 58px; PADDING-TOP: 0px; HEIGHT: 23px; TEXT-ALIGN: center
}
.diggLink A {
FONT-WEIGHT: bold; FONT-SIZE: 14px
}
</STYLE>
<META content="MSHTML 6.00.6000.16640" name=GENERATOR></HEAD>
<BODY><!--头部开始-->
<DIV class="top cbody">
<DIV class=toplogo><A href="http://www.dedecms.com/"><IMG height=60
alt="DEDE CMS"
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/toplogo.gif"
width=200></A></DIV>
<DIV class=topbanner>
<SCRIPT language=javascript
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/top.js"
type=text/javascript></SCRIPT>
</DIV>
<DIV class=toplink>
<UL>
<LI><A href="http://www.dedecms.com/plus/heightsearch.php">高级搜索</A> </LI>
<LI><A
onclick="javascript:window.external.AddFavorite('http://www.dedecms.com','织梦内容管理系统');"
href="http://www.dedecms.com/web-art/JSPjiaocheng/20050213/21975.html#">收藏本站</A>
</LI>
<LI><A href="http://www.dedecms.com/plus/sitemap.html">网站地图</A> </LI>
<LI><A href="http://www.dedecms.com/plus/rssmap.html">RSS订阅</A>
</LI></UL></DIV></DIV><!--导航栏-->
<DIV class="topmenu cbody">
<UL>
<LI><A href="http://www.dedecms.com/">首页</A> </LI>
<LI><A href="http://www.dedecms.com/html/zaixianwendang/index.html">在线文档</A>
</LI>
<LI><A href="http://www.dedecms.com/html/chanpinxiazai/index.html">产品下载</A>
</LI>
<LI><A href="http://www.dedecms.com/html/xitongyanshi/index.html">系统演示</A>
</LI>
<LI><A href="http://www.dedecms.com/html/CMS/index.html">CMS行业动态</A> </LI>
<LI><A href="http://www.dedecms.com/web-art/index.html">站长学院</A> </LI>
<LI><A href="http://www.dedecms.com/web-manage/index.html">网站运营</A> </LI>
<LI><A href="http://www.dedecms.com/html/zuixindongtai/index.html">最新动态</A>
</LI>
<LI><A href="http://www.dedecms.com/html/mobanxiazai/index.html">模板下载</A>
</LI>
<LI><A href="http://www.dedecms.com/special/index.php">专题</A> </LI>
<LI><A href="http://bbs.dedecms.com/">支持论坛</A> </LI></UL>
<DIV class=rssbut><A href="http://www.dedecms.com/plus/rssmap.html"><IMG alt=RSS
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/rss_button.gif"></A>
</DIV></DIV><!--搜索条-->
<DIV class="topsearch cbody">
<DIV class=title></DIV>
<DIV class=inpbox>
<FORM name=formsearch action=/plus/search.php><INPUT type=hidden value=0
name=kwtype> <INPUT class=searchtxt id=keyword name=keyword> <SELECT
id=searchtype name=searchtype> <OPTION value=titlekeyword
selected>智能模糊搜索</OPTION> <OPTION value=title>仅搜索标题</OPTION></SELECT> <INPUT
type=image
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/topsearch_submit.gif">
</FORM></DIV>
<DIV class=hots><STRONG>热门关键字:</STRONG> <A
href="http://www.dedecms.com/plus/search.php?keyword=cms&searchtype=titlekeyword">cms</A>
<A
href="http://www.dedecms.com/plus/search.php?keyword=%CF%C2%D4%D8&searchtype=titlekeyword">下载</A>
<A
href="http://www.dedecms.com/plus/search.php?keyword=%C4%A3%B0%E6&searchtype=titlekeyword">模版</A>
<A
href="http://www.dedecms.com/plus/search.php?keyword=%BF%AA%D4%B4&searchtype=titlekeyword">开源</A>
<A
href="http://www.dedecms.com/plus/search.php?keyword=dedecms&searchtype=titlekeyword">dedecms</A>
</DIV></DIV><!--内容-->
<DIV class="main cbody margintop"><!--左侧-->
<DIV class=pleft><!--位置导航-->
<DIV class=thisplace>
<DIV class=placenav><SPAN>当前位置 :</SPAN>| <A
href="http://www.dedecms.com/">主页</A>><A
href="http://www.dedecms.com/web-art/index.html">站长学院</A>><A
href="http://www.dedecms.com/web-art/JSPjiaocheng/index.html">JSP教程</A>>
</DIV></DIV><!--资讯内容-->
<DIV class=newsview><!--资讯标题-->
<DIV class=title>
<H1>用WebWork、JSP、Velocity建立注册页面</H1></DIV><!--相关信息-->
<DIV class=info><STRONG>来源:</STRONG>互联网 <STRONG>作者:</STRONG>未知
<STRONG>时间:</STRONG>2005-02-13 <STRONG>点击:</STRONG>
<SCRIPT language=javascript
src="用WebWork、JSP、Velocity建立注册页面%20-%20织梦内容管理系统_files/count.htm"></SCRIPT>
</DIV><!--资讯正文-->
<DIV
class=content><B> 摘要<BR></B><BR> WebWork是一个源代码开放的Web应用框架,用于简化基于Web的应用开发。本专栏介绍了WebWork并且描述了如何使用WebWork和JavaServer Pages(JSP)、Velocity两种技术来建立注册界面的过程。<BR><BR>Web 应用程序的设计开发是复杂并且费时的。然而,你能够通过运用一种框架处理常见的Web应用程序来简化开发流程。许多开源Web应用框架能够做到这一点甚至更好一些。这些开发框架中最好的一个就是WebWork,是开源项目中OpenSymphony组的一个Web应用开发框架。<BR><BR> WebWork的最大优点是它的简单性和灵活性。WebWork有一个很小的API,它使开发者可以迅速进行开发工作。WebWork是许多特性和适用性的组合,包括使用variour view技术,例如JavaServer Pages(JSP),Velocity,Extensible Stylesheet Language Transformations <BR>Specification(XSLT)和JasperReporters。WebWork拥有一个活跃的社区,有许多文章、开发者和用户。<BR><BR> 注意:本文基于WebWork1.3.0 release candidate 2(RC2)。为了使用本文提供的例子,你需要在你的应用服务器的webapps目录下建立文件夹,将例子拷贝至新的文件夹下,同时将所需的jar文件从WebWork distribution拷贝至WEB-INF/lib目录。在此处下载WebWork和本文相关的源代码。<BR><BR>------<BR><B> Actions</B><BR><BR> WebWork的一个最重要的特色就是Action接口。WebWork actions通过在页面(视图)和商业逻辑间提供mapping来控制Web应用程序流程。在WebWork中,提交窗体到一个action URI(Uniform Resource Identifier);这个URI指向一个相应的action;action执行;用户可以前进到相应的视图。<BR><BR> 下述class,LoginAction,是WebWork处理基于Web应用的注册窗体的例子。LoginAction扩展了ActionSupport。它是一个基类,提供了处理错误、视图映射、和许多有用的功能。<BR><BR>
<P></P><BR>
<TABLE class=txcode cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR><BR>
<TD
style="WORD-WRAP: break-word">import webwork.action.*;<BR><BR>public class LoginAction extends ActionSupport<BR>{<BR> private String userName;<BR> private String password; <BR><BR> public String getPassword()<BR> {<BR> return password;<BR> }<BR><BR> public String getUserName()<BR> {<BR> return userName;<BR> }<BR><BR> public void setPassword(String password)<BR> {<BR> this.password = password;<BR> }<BR><BR> public void setUserName(String userName)<BR> {<BR> this.userName = userName;<BR> }<BR><BR> public String doExecute()<BR> {<BR> return SUCCESS;<BR> }<BR><BR> public void doValidation()<BR> {<BR> if (userName == null || userName.length() < 1) addError("UserName", "Please enter username.");<BR> if (password == null || password.length() < 1) addError("Password", "Please enter password.");<BR> }<BR>}</TD></TR></TBODY></TABLE><BR>
<P><BR> LoginAction包括了两个JavaBean属性,password和username。WebWork把数据从属性中放置到你的视图中并且自动解析送到action的参数来设置属性值。<BR><BR> LoginAction重载了ActionSupport的两个方法:doValidation()和doExecute()。doValidation()方法验证参数,doExecute()方法让用户前进到相应的视图。doExecute()方法返回一个字符串,如果所有的处理是成功的,返回常量success。如果有任何问题发生,在用户输入视图上返回常量input。在LoginAction的doValidation()方法中调用addError指出了一个认证问题并且让用户返回INPUT视图。<BR><BR>---------<BR><BR><B> View mapping</B><BR> <BR> 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;<BR><BR><BR></P><BR>
<TABLE class=txcode cellSpacing=0 cellPadding=0 align=center border=0>
<TBODY>
<TR>
<TD
style="WORD-WRAP: break-word"><actions><BR><BR> <action name="LoginAction" alias="loginJSP"><BR> <view name="input">login.jsp</view><BR> <view name="success">success.html</view><BR> </action><BR><BR> <action name="LoginAction" alias="loginVelocity"><BR> <view name="input">login.vm</view><BR> <view name="success">success.html</view><BR> </action><BR><BR></actions></TD></TR></TBODY></TABLE><BR><BR><BR><BR>
<P><BR><BR><BR>--------<BR><B> 视图</B><BR> <BR> 尽管WebWork对于许多不同的视图技术提供了支持,但是最为常见的是JSP和Velociy。以下页面是两个注册页面的例子--一个使用了JSP另一个使用了Velocity。每个页面都包括了一个用户部分和一个密码部分,这两部分提交给WebWork action。<BR><BR> Login.jsp页面通过使用WebWork标记库来建立和处理以上两个部分,并且通过错误收集器来处理错误。webwork:textfield 和 webwork:password标记建立了text和password部分,webwork:iterator标记处理从LoginAction返回的错误。 webwork:property标记设置username,password和errors属性。<BR><BR><BR></P><BR>
<TABLE class=txcode cellSpacing=0 cellPadding=0 align=center border=0><BR>
<TBODY><BR>
<TR><BR>
<TD
style="WORD-WRAP: break-word"><%@ taglib uri="webwork" prefix="webwork" %><BR><BR><html><BR><BR> <head><BR> <title>WebWork JSP Example</title><BR> </head><BR><BR> <body><BR><BR> <form action="loginJSP.action" method="post"><BR><BR> <webwork:property><BR> <webwork:textfield label="'Name'" name="'userName'"/><BR> <webwork:password label="'Password'" name="'password'"/><BR> </webwork:property><BR><BR> <input type="submit" value="Submit"/><BR> </form><BR><BR> <webwork:iterator value="errors"gt;<BR> <br><webwork:property/><BR> </webwork:iterator><BR><BR> </body><BR></html></TD></TR></TBODY></TABLE><BR><BR><BR> login.vm页面使用了Velocity模板语言来建立域并且处理错误。在Velocity中,$符号表明了一个参考。!符号告诉Velocity如果参考为空,那么什么都不显示。#符号表示了一个指令。在下述例子中,$!userName和$!password表明参考引用了LoginAction中的username和password;#foreach在错误处理属性中指示了循环。<BR><BR><BR>
<TABLE class=txcode cellSpacing=0 cellPadding=0 align=center border=0><BR>
<TBODY><BR>
<TR><BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -