我的流程具有input required="true"
。如果出于某种原因,某人在流程中间添加了书签或共享链接,则由于没有输入,流程会因缺少输入而引发异常,并且我会收到通用的 500 错误页面。有没有办法指定在这种情况下要渲染的 View ?
最佳答案
删除输入 required="true"属性并通过决策状态自行验证输入参数。
例如:
<input name="id"/>
<decision-state id="createOrEdit">
<if test="requestParameters.id != null" then="editView" else="createView"/>
</decision-state>
<view-state id="createView" view="flows/v/create" model="modelObj">
<!-- contents omitted -->
</view-state>
<view-state id="editView" view="flows/v/edit" model="modelObj">
<!-- contents omitted -->
</view-state>
因此,在上面的示例中,我们收到了一个请求参数“id”。我们验证此参数以查看它是否为空,并根据此空检查决定继续进行哪个 View 状态。
可选,
在“if”内部,“then”和“else”的值不仅可以引用 View 状态,还可以引用任何其他操作状态,甚至另一个决策状态。
您可以在 1 个决策状态内添加多个“if 测试”。
关于java - 针对缺少输入提供用户友好的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29671134/