• 使用Spring Web Flow--概念学习


    概述:

    觉得学一个东西首先大概跑通一个demo,有很多不懂,没有关系,接下来学习概念,你就会明白为什么会这么做?这就是带个问题学习、上一节模仿别人写的demo,大概了解流程

    8.1 在Spring中配置Web Flow

    增加xml中web FLow 命名空间

    xmlns:flow="http://www.springframework.org/schema/webflow-config"

    http://www.springframework.org/schema/webflow-config

    http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd

    8.1.1 装配流程执行器(CEO)

    8.1.2 配置流程注册表(部门经理)flow registry

    WEB-INF/flows">

    总结:

    1、flow-location-pattern 表示利用正则表达式匹配,而flow-location是具体的地址

    转存失败重新上传取消

    8.1.3 处理流程请求

    请求过来-->DispatcherServlet ->FlowHandlerMapping->FlowHandlerAdapter 

    上面FlowHandlerMapping 类似 ResultMapping,路径映射

    FlowHandlerAdapter 类似具体控制器

    8.2 流程组件

    状态、转移和流程数据

    8.2.1 状态

    Action(行为)  : 行为状态是流程逻辑发生的地方

    Decision(决策): 决策状态将流程分成两个方向,类似if

    End(结束) 结束状态是流程的最后一站,一旦进入End状态,流程就会终止

    Subflow(子流程) 子流程状态会在当前正在运行的流程上下文启动一个新的流程

    视图(View) 视图状态会暂停流程并邀请用户参与流程,其实就是显示jsp网页

    视图状态:

    如果没有view,默认view为welcome,当然也可以显式指定 ,如果展示数据可以用model属性

    行为状态:

    一般是调用具体类实现默认验证。expression=SpEL表达式

    决策状态

    then="addCustomer"

    else="deliveryWarning" />

    子流程状态:

    \

    结束状态:

    "externalRedirect" : 流程之外的视图

    “flowRedirect:” 重定向另个流程中

    8.2.2 转移(各个状态之间的交互)

    例如:  to:表示转移目标, on:表示动作触发

    异常转移:

    on-exception="com.springinaction.pizza.service.CustomerNotFoundException"  to="registrationForm" />

    全局转移:(整个流程终止)

     变成

    所有状态都会默认拥有这个cancel转移

    8.2.3 流程数据

    声明变量

    视图作用域

    expression="T(com.springinaction.pizza.domain.Topping).asList()"

    value="new com.springinaction.pizza.domain.pizza()"/>

    定义流程数据的作用域;
    Conversation: 最高层级作用域

    Flow: 创建它流程可见

    Request: 当一个请求进入流程时创建

    Flash:与Flow类似,当流程开始创建,在流程结束时销毁

    View: 当进入视图状态时创建,当这个状态退出时销毁,只在视图状态内是可见的

    当使用元素声明变量时,变量始终是流程作用域的,也就是在定义变量的流程内有效。当使用的时候,作用域通过name或result属性的前缀指定。

    总结:流程的三要素就是:状态、转移、流程数据

  • 相关阅读:
    BGP服务器租用价格表_腾讯云PK阿里云
    推荐2款开源、美观的WinForm UI控件库
    Linux——进程间通信(共享内存)
    ueditor百度富文本编辑器粘贴后html丢失class和style样式
    【面试经典150 | 哈希表】存在重复元素 II
    springboot + vue实现数据导出
    canal监听mysql增量数据发布到rabbitmq
    华为交换机基础配置(telnet/ssh登录)
    肠道重要菌属——嗜胆菌属 (Bilophila)喜欢脂肪、耐胆汁的促炎菌
    R语言多元线性回归、ARIMA分析美国不同候选人对经济GDP时间序列影响
  • 原文地址:https://blog.csdn.net/apple_51426592/article/details/127856572