在Spring Webflow中,如何从失败的on-start评估转换

时间:2013-03-14 21:21:37

标签: spring spring-webflow

我是Spring Webflow的新手,我正在尝试修改现有流程,以根据多个规则检查用户使用流程的授权。似乎没有一种明显的(广泛记录的)从评估过渡到某种终止条件的方法。我理解的转换不允许在开始时使用。抛出异常除了有一种优雅的过渡方式吗?感谢。

这是为编辑创建的表单。我将授权检查代码添加到引用的方法中。我可以在此之前添加一个单独的评估来检查授权,但我仍然有转换问题。

<on-start>
    <evaluate        expression="solutionCreateEditFlowHelper.findDocumentForEdit(requestParameters.solutionId)" result="flowScope.documentForm"></evaluate>

&GT;      

1 个答案:

答案 0 :(得分:5)

您并不总是需要<on-start>。您可以将决策状态作为起始状态,并在条件为真或假的情况下检查该决策状态,如果为true则转换到您的视图状态或其他状态,如果没有转换到具有视图的结束状态。

让我们说你调用你的流文档Flow.xml 在这个文件中,你输入一个像下面这样的决策状态:

<input name="solutionId" type="long" />

<decision-state id="isDocumentFormSet">
<on-entry>
    <evaluate expression="solutionCreateEditFlowHelper.findDocumentForEdit(solutionId)" result="flowScope.documentForm"/>
</on-entry>
    <if test="documentForm == null" then="chooseDocument" else="noDocument"/>
</decision-state>

<end-state id="noDocument"/>

<view-state id="chooseDocument">
....
</view-state>