【问题标题】:How could this spring webflow action state executed?这个 spring webflow 动作状态是如何执行的?
【发布时间】:2019-11-07 22:09:44
【问题描述】:

我看到了一个这样的弹簧网络流。如您所见,有两种视图状态,它们都将被此流之外的链接调用。但是我不知道为什么每次激活这个流时,总是会调用动作状态。我个人认为应该有一个入口标签。有什么想法吗?感谢您的帮助。

  <?xml version="1.0" encoding="UTF-8"?>
    <flow xmlns="http://www.springframework.org/schema/webflow"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="
            http://www.springframework.org/schema/webflow
            http://www.springframework.org/schema/webflow/spring-webflow.xsd">

        <action-state id="start">
            <evaluate expression="aaa.fsdf()"/>
            <evaluate expression="aaa.bbb()"/>
            <transition on="yes" to="viewone"/>
            <transition on="no" to="viewtwo"/>
        </action-state>

        <view-state id="viewone" view="web/ccc">
        </view-state>

        <view-state id="viewtwo" view="web/eee">
        </view-state>


        <end-state id="final" view="web/final">
        </end-state>

    </flow>

【问题讨论】:

    标签: spring spring-webflow


    【解决方案1】:

    这就是 Spring Webflow 中流的工作方式。见documentation about flows

    定义的第一个状态成为流程的起点。


    此外,您不能直接在流中直接调用状态。假设您的流程名称为“test-flow”,位于名为 test-flow.xml 的文件中

    当你通过URL调用流时,使用yoursite.com/test-flow会进入流和流的第一个状态。所以如果你想在流中调用特定的视图状态,你必须使用一些逻辑来将流引导到你想要的状态。 一种方法是传递一个参数,例如yoursite.com/test-flow?test=1,然后在您的流程中使用操作状态来检查该参数并转换到正确的视图状态。

    这就是这里发生的事情,流程中的操作状态是起点,根据某些逻辑,它将转换到您的 viewoneviewtwo

    希望这是有道理的

    【讨论】:

    • 非常感谢。你的回答真的很清楚很有帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-11-08
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多