网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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!
当前位置 > 网站建设学院 > 网络编程 > Java
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,移动开发
本月文章推荐
.IBM 发布Java字节码分析工具.
.Eclipse 3.0快速上手指南之安装配.
.Java源代码案例--骑士巡游问题.
.MIDP1.0游戏完整实现-双人扫雷1..
.Javadoc 利弊分析.
.如何配置Java Server Page运行环.
.将一个BigDecimal类型的数转换成.
.索爱部分机型支持同时播放多个声.
.一个 Java,各自表述.
.进一步研究字面量.
.你真的掌握J2SE了么-J2SE学习标.
.安装配置篇Apache+Tomcat.
.首个Java恶意手机代码出现.
.关于构建一个使用EJB组件的新系统.
.Eclipse Form设计指南之定制布局.
.Java初学者容易混淆的几个问题.
.2004年11月11日.
.配置tomcat5.0连接池遇到的问题,.
.jdbc连接各种数据库方式列表.
.开发不再是苦差事 用Eclipse简化.

Spring WebFlow :2(WebFlow的关键组件)

发表日期:2008-1-5



  WebFlow的核心组件
  
  一个Spring WebFlow应用中包含一个或多个流程,通常每个流程包括执行Action的动作状态(ActionStates),显示状态(ViewStates),跳转动作(Transitions).
  
  流程
  
  一个流程是一个预先定义好的用户交互行为的集合,表示为一个由动作状态和显示状态构成的树,状态之间通过跳转联系.
  
  下面的登录注册是一个webflow的例子,包含了一些典型的构件,例如loginForm,ActionState,transition.这些构件通过一个XML文件描述:
  
  <?xml version="1.0" encoding="UTF-8"?>
  
  <!DOCTYPE webflow PUBLIC "-//SPRING//DTD WEBFLOW//EN"
  "http://www.springframework.org/dtd/spring-webflow.dtd">
  <webflow id="LoginSequence" start-state="loginForm">
  
  <action-state id="loginForm">
  <action bean="loginFormAction"/>
  <transition on="sUCcess" to="formView"/>
  </action-state>
  ...
  <view-state id="formView" view="enterCredentials">
  <transition on="submit" to="bindAndValidateForm"/>
  </view-state>
  ...
  <end-state id="successView" view="displayMain"/>
  
  这个流程以loginForm开始,以"successView"结束(修饰主页面"displayMain" 的组件.流程可以通过XML文档配置,或者AbstractFlowBuilder的子类.
  
  动作状态(ActionStates)
  
  ActionStates对用户事件或其他事件进行响应.ActionStates自身又可以包含其他可执行的Action和transition.下面的代码配置了"loginForm"这个ActionState.
  
  <action-state id="loginForm">
  <action bean="loginFormAction"/>
  <transition on="success" to="formView"/>
  </action-state>
  
  动作(Actions)
  
  Action是ActionState可以连接,重用,声明调用的最小单位.Action继续自AbstractAction类,该类实现了doExecuteAction方法.这个方法的参数:RequestContext,WebFlow(其中封装了所有流程相关的数据).loginForm动作状态通过Spring的自动装配特性调用LoginFormAction动作.doExecute
  
  Action方法被自动调用,同时可以处理一些登录预备,预先装入等操作.
  
  public LoginFormAction extends AbstractAction{
  
  protected Event doExecuteAction(RequestContext context)
  throws Exception{
  //perform some login specific setup operations
  ...
  
  }//end method
  
  }//end class
  
  显示状态(ViewState)
  
  ViewState初始化对显示组件(jsp,tile等)的修饰操作.下面是一个ViewState的配置代码
  
  <view-state id="formView" view="enterCredentials">
  <transition on="submit" to="bindAndValidateForm"/>
  </view-state>
  
  当来自loginForm的ActionState返回一个"success"时,这个ViewState将会被调用.它将修饰"enterCredentials"显示组件(可以是一个常见的struts forward).
  
  跳转(Transition)
  
  和通常的状态机一样,WebFlow定义了状态以及状态之间跳转动作.这些跳转动作很类似struts中的ActionForward.同样是负责连接两个状态.
  
  后继动作(Continuation)
  
  后继动作(Continuation)答应你回退并重新开始程序执行流程 -- 从程序执行的角度来看是一个适时的逆流程.Continuation的概念最早来自编程语言,但是却从来没有被用于像Java,VB,C++这样主流的编程语言中.WebFlow创造性地实现了continuation.由于continuation可以用来持久和重造任何一个流程状态,从而提供给你极大的自由.
上一篇:Spring WebFlow :重用与抽象框架1(简介) 人气:799
下一篇:手工创建的SOAP消息中命名空间的处理 人气:712
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐