⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 用webwork、jsp、velocity建立注册页面 - 织梦内容管理系统.htm

📁 几个运用了DWR框架编写的AJAX代码,
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!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&amp;searchtype=titlekeyword">cms</A> 
 <A 
href="http://www.dedecms.com/plus/search.php?keyword=%CF%C2%D4%D8&amp;searchtype=titlekeyword">下载</A> 
 <A 
href="http://www.dedecms.com/plus/search.php?keyword=%C4%A3%B0%E6&amp;searchtype=titlekeyword">模版</A> 
 <A 
href="http://www.dedecms.com/plus/search.php?keyword=%BF%AA%D4%B4&amp;searchtype=titlekeyword">开源</A> 
 <A 
href="http://www.dedecms.com/plus/search.php?keyword=dedecms&amp;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>&gt;<A 
href="http://www.dedecms.com/web-art/index.html">站长学院</A>&gt;<A 
href="http://www.dedecms.com/web-art/JSPjiaocheng/index.html">JSP教程</A>&gt; 
</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&nbsp;Pages(JSP)、Velocity两种技术来建立注册界面的过程。<BR><BR>Web&nbsp;应用程序的设计开发是复杂并且费时的。然而,你能够通过运用一种框架处理常见的Web应用程序来简化开发流程。许多开源Web应用框架能够做到这一点甚至更好一些。这些开发框架中最好的一个就是WebWork,是开源项目中OpenSymphony组的一个Web应用开发框架。<BR><BR>&nbsp;  WebWork的最大优点是它的简单性和灵活性。WebWork有一个很小的API,它使开发者可以迅速进行开发工作。WebWork是许多特性和适用性的组合,包括使用variour&nbsp;view技术,例如JavaServer&nbsp;Pages(JSP),Velocity,Extensible&nbsp;Stylesheet&nbsp;Language&nbsp;Transformations&nbsp;<BR>Specification(XSLT)和JasperReporters。WebWork拥有一个活跃的社区,有许多文章、开发者和用户。<BR><BR>  注意:本文基于WebWork1.3.0&nbsp;release&nbsp;candidate&nbsp;2(RC2)。为了使用本文提供的例子,你需要在你的应用服务器的webapps目录下建立文件夹,将例子拷贝至新的文件夹下,同时将所需的jar文件从WebWork&nbsp;distribution拷贝至WEB-INF/lib目录。在此处下载WebWork和本文相关的源代码。<BR><BR>------<BR><B>  Actions</B><BR><BR>&nbsp;  WebWork的一个最重要的特色就是Action接口。WebWork&nbsp;actions通过在页面(视图)和商业逻辑间提供mapping来控制Web应用程序流程。在WebWork中,提交窗体到一个action&nbsp;URI(Uniform&nbsp;Resource&nbsp;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&nbsp;webwork.action.*;<BR><BR>public&nbsp;class&nbsp;LoginAction&nbsp;extends&nbsp;ActionSupport<BR>{<BR>&nbsp;&nbsp;private&nbsp;String&nbsp;userName;<BR>&nbsp;&nbsp;private&nbsp;String&nbsp;password;&nbsp;<BR><BR>&nbsp;&nbsp;public&nbsp;String&nbsp;getPassword()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;password;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;public&nbsp;String&nbsp;getUserName()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;userName;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;public&nbsp;void&nbsp;setPassword(String&nbsp;password)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;this.password&nbsp;=&nbsp;password;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;public&nbsp;void&nbsp;setUserName(String&nbsp;userName)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;this.userName&nbsp;=&nbsp;userName;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;public&nbsp;String&nbsp;doExecute()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;SUCCESS;<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;public&nbsp;void&nbsp;doValidation()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(userName&nbsp;==&nbsp;null&nbsp;||&nbsp;userName.length()&nbsp;&lt;&nbsp;1)&nbsp;addError("UserName",&nbsp;"Please&nbsp;enter&nbsp;username.");<BR>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(password&nbsp;==&nbsp;null&nbsp;||&nbsp;password.length()&nbsp;&lt;&nbsp;1)&nbsp;addError("Password",&nbsp;"Please&nbsp;enter&nbsp;password.");<BR>&nbsp;&nbsp;}<BR>}</TD></TR></TBODY></TABLE><BR>
<P><BR>  LoginAction包括了两个JavaBean属性,password和username。WebWork把数据从属性中放置到你的视图中并且自动解析送到action的参数来设置属性值。<BR><BR>&nbsp;  LoginAction重载了ActionSupport的两个方法:doValidation()和doExecute()。doValidation()方法验证参数,doExecute()方法让用户前进到相应的视图。doExecute()方法返回一个字符串,如果所有的处理是成功的,返回常量success。如果有任何问题发生,在用户输入视图上返回常量input。在LoginAction的doValidation()方法中调用addError指出了一个认证问题并且让用户返回INPUT视图。<BR><BR>---------<BR><BR><B>  View&nbsp;mapping</B><BR>&nbsp;<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">&lt;actions&gt;<BR><BR>&nbsp;&nbsp;&lt;action&nbsp;name="LoginAction"&nbsp;alias="loginJSP"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;view&nbsp;name="input"&gt;login.jsp&lt;/view&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;view&nbsp;name="success"&gt;success.html&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/action&gt;<BR><BR>&nbsp;&nbsp;&lt;action&nbsp;name="LoginAction"&nbsp;alias="loginVelocity"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;view&nbsp;name="input"&gt;login.vm&lt;/view&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;view&nbsp;name="success"&gt;success.html&lt;/view&gt;<BR>&nbsp;&nbsp;&lt;/action&gt;<BR><BR>&lt;/actions&gt;</TD></TR></TBODY></TABLE><BR><BR><BR><BR>
<P><BR><BR><BR>--------<BR><B>  视图</B><BR>  <BR>  尽管WebWork对于许多不同的视图技术提供了支持,但是最为常见的是JSP和Velociy。以下页面是两个注册页面的例子--一个使用了JSP另一个使用了Velocity。每个页面都包括了一个用户部分和一个密码部分,这两部分提交给WebWork&nbsp;action。<BR><BR>  Login.jsp页面通过使用WebWork标记库来建立和处理以上两个部分,并且通过错误收集器来处理错误。webwork:textfield&nbsp;和&nbsp;webwork:password标记建立了text和password部分,webwork:iterator标记处理从LoginAction返回的错误。&nbsp;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">&lt;%@&nbsp;taglib&nbsp;uri="webwork"&nbsp;prefix="webwork"&nbsp;%&gt;<BR><BR>&lt;html&gt;<BR><BR>&nbsp;&nbsp;&lt;head&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;WebWork&nbsp;JSP&nbsp;Example&lt;/title&gt;<BR>&nbsp;&nbsp;&lt;/head&gt;<BR><BR>&nbsp;&nbsp;&lt;body&gt;<BR><BR>&nbsp;&nbsp;&lt;form&nbsp;action="loginJSP.action"&nbsp;method="post"&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;webwork:property&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;webwork:textfield&nbsp;label="'Name'"&nbsp;name="'userName'"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;webwork:password&nbsp;label="'Password'"&nbsp;name="'password'"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/webwork:property&gt;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;input&nbsp;type="submit"&nbsp;value="Submit"/&gt;<BR>&nbsp;&nbsp;&lt;/form&gt;<BR><BR>&nbsp;&nbsp;&lt;webwork:iterator&nbsp;value="errors"gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;&lt;webwork:property/&gt;<BR>&nbsp;&nbsp;&lt;/webwork:iterator&gt;<BR><BR>&nbsp;&nbsp;&lt;/body&gt;<BR>&lt;/html&gt;</TD></TR></TBODY></TABLE><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;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 + -