我有一个动作状态,我需要执行两个计算表达式,其中两个表达式都将返回相应的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。我该如何解决这个问题?
答案 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。