Spring Web流中的action-state中的多个计算表达式问题

时间:2016-05-03 05:34:53

标签: java spring spring-mvc spring-webflow spring-webflow-2

我有一个动作状态,我需要执行两个计算表达式,其中两个表达式都将返回相应的bean。我的问题是在我的操作状态中,只有一个评估表达式在以下代码中排除,

<action-state id="confirmState">
    <evaluate expression="myController.getConfirmPage(flowRequestContext,conversationScope.studentTypeBean)" result="conversationScope.studentTypeBean"/>
    <evaluate expression="myPageController.getHomePage(flowRequestContext)" result="conversationScope.studentBean"    />
    <transition to="studentConfirm"></transition>         
</action-state>

有些教程说,为了超越多个求值表达式,第一个表达式需要返回true才能超越第二个表达式,这是真的吗?但我希望在我的情况下返回一个bean而不是boolean。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

你可以这样使用:

<action-state id="confirmState">
    <on-entry>
        <evaluate expression="myController.getConfirmPage(flowRequestContext,conversationScope.studentTypeBean)" result="conversationScope.studentTypeBean"/>
    </on-entry>
    <evaluate expression="myPageController.getHomePage(flowRequestContext)" result="conversationScope.studentBean"/>
    <transition to="studentConfirm"/>         
</action-state>

但如果这确实是你的行动状态,我认为不需要它。假设你进入&#34; confirmState&#34;通过单个confirmState转换,您可以简化为:

<transition on="confirmState" to="studentConfirm">
    <evaluate expression="myController.getConfirmPage(flowRequestContext,conversationScope.studentTypeBean)" result="conversationScope.studentTypeBean"/>
    <evaluate expression="myPageController.getHomePage(flowRequestContext)" result="conversationScope.studentBean"/>
</transition>

答案 1 :(得分:2)

我有同样的问题。我发现这对我有用:

<action-state id="confirmState">
    <evaluate expression="myController.getConfirmPage(flowRequestContext,conversationScope.studentTypeBean)" result="conversationScope.studentTypeBean"/>
    <transition to="studentConfirm">
        <evaluate expression="myPageController.getHomePage(flowRequestContext)" result="conversationScope.studentBean"    />
    </transition>         
</action-state>

答案 2 :(得分:0)

我相信您可以有多个,只要顶级方法返回true,而不是void。