国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Spring WebFlow :2(WebFlow的關(guān)鍵組件)

2019-11-18 12:50:39
字體:
供稿:網(wǎng)友

  WebFlow的核心組件
  
  一個SPRing WebFlow應(yīng)用中包含一個或多個流程,通常每個流程包括執(zhí)行Action的動作狀態(tài)(ActionStates),顯示狀態(tài)(ViewStates),跳轉(zhuǎn)動作(Transitions).
  
  流程
  
  一個流程是一個預(yù)先定義好的用戶交互行為的集合,表示為一個由動作狀態(tài)和顯示狀態(tài)構(gòu)成的樹,狀態(tài)之間通過跳轉(zhuǎn)聯(lián)系.
  
  下面的登錄注冊是一個webflow的例子,包含了一些典型的構(gòu)件,例如loginForm,ActionState,transition.這些構(gòu)件通過一個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"結(jié)束(修飾主頁面"displayMain" 的組件.流程可以通過XML文檔配置,或者AbstractFlowBuilder的子類.
  
  動作狀態(tài)(ActionStates)
  
  ActionStates對用戶事件或其他事件進行響應(yīng).ActionStates自身又可以包含其他可執(zhí)行的Action和transition.下面的代碼配置了"loginForm"這個ActionState.
  
  <action-state id="loginForm">
  <action bean="loginFormAction"/>
  <transition on="success" to="formView"/>
  </action-state>
  
  動作(Actions)
  
  Action是ActionState可以連接,重用,聲明調(diào)用的最小單位.Action繼續(xù)自AbstractAction類,該類實現(xiàn)了doExecuteAction方法.這個方法的參數(shù):RequestContext,WebFlow(其中封裝了所有流程相關(guān)的數(shù)據(jù)).loginForm動作狀態(tài)通過Spring的自動裝配特性調(diào)用LoginFormAction動作.doExecute
  
  Action方法被自動調(diào)用,同時可以處理一些登錄預(yù)備,預(yù)先裝入等操作.
  
  public LoginFormAction extends AbstractAction{
  
  protected Event doExecuteAction(RequestContext context)
  throws Exception{
  //perform some login specific setup Operations
  ...
  
  }//end method
  
  }//end class
  
  顯示狀態(tài)(ViewState)
  
  ViewState初始化對顯示組件(jsp,tile等)的修飾操作.下面是一個ViewState的配置代碼
  
  <view-state id="formView" view="enterCredentials">
  <transition on="submit" to="bindAndValidateForm"/>
  </view-state>
  
  當(dāng)來自loginForm的ActionState返回一個"success"時,這個ViewState將會被調(diào)用.它將修飾"enterCredentials"顯示組件(可以是一個常見的struts forward).
  
  跳轉(zhuǎn)(Transition)
  
  和通常的狀態(tài)機一樣,WebFlow定義了狀態(tài)以及狀態(tài)之間跳轉(zhuǎn)動作.這些跳轉(zhuǎn)動作很類似struts中的ActionForward.同樣是負責(zé)連接兩個狀態(tài).
  
  后繼動作(Continuation)
  
  后繼動作(Continuation)答應(yīng)你回退并重新開始程序執(zhí)行流程 -- 從程序執(zhí)行的角度來看是一個適時的逆流程.Continuation的概念最早來自編程語言,但是卻從來沒有被用于像java,VB,C++這樣主流的編程語言中.WebFlow創(chuàng)造性地實現(xiàn)了continuation.由于continuation可以用來持久和重造任何一個流程狀態(tài),從而提供給你極大的自由.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 怀柔区| 北宁市| 樟树市| 铁岭市| 微博| 盐城市| 平远县| 宁都县| 上杭县| 宜昌市| 莱州市| 余庆县| 平定县| 柘城县| 峨眉山市| 泸西县| 西青区| 依安县| 广饶县| 南皮县| 镇康县| 腾冲县| 广南县| 调兵山市| 盐城市| 连州市| 湖南省| 调兵山市| 林甸县| 咸宁市| 太原市| 东港市| 虎林市| 松桃| 佳木斯市| 济阳县| 砀山县| 太原市| 涟源市| 芦山县| 沭阳县|