我想通过调用一个函数来实现到另一个视图的转换并设置流量范围中的某个变量。成功或错误事件没有任何区别。我知道,我可以在视图状态和操作状态下使用评估标记来调用函数。将评估标签放在每个标签中是否有区别?对于这种情况哪一个更好?在视图状态或处于操作状态下评估标记有什么区别
0
A
回答
1
WebFlow的灵活性在于,您可以通过“入门”和“退出”标签或动作状态标签执行任何状态下的表达式评估。与任何允许灵活性的框架一样,最好选择一种在所有流程中保持一致的策略。您可以简单地在“视图状态”内的“on-entry”或“on-render”标签中执行评估表达式,但使用中间的“操作状态”先执行您的表达式,然后转换到“视图状态”。
优势:
有时你必须评估多个表达式,但它们是相同的“行动”的一部分。将这些多重评估分为'行为状态'和'行为状态'提供一个有意义的ID名称可以有助于流程的可读性和潜在的故障排除,如果在该行为状态中引发异常。
因此,举例来说,
可以说,我们要调用3种不同的服务方法,我们渲染“视图状态”之前。我们可以这样做:
<view-state id="myViewState" view="myViewFile" model="entity">
<on-entry>
<evaluate expression="myService.findObjById(id)" result="flowScope.model" />
<evaluate expression="myService.updateUserStats(someField)"/>
<evaluate expression="myService.performSomeOtherAction()"/>
</on-entry>
</view-state>
,这会工作得很好,但它会更好,如果我们去掉所有的服务方法从“上进入”调用,并把他们安置在自己的“动作状态”一旦完成执行再过渡到“视图状态”
<action-state id="prepareMyViewState">
<evaluate expression="myService.findObjById(id)" result="flowScope.model" />
<evaluate expression="myService.updateUserStats(someField)"/>
<evaluate expression="myService.performSomeOtherAction()"/>
<transition to="myViewState"/>
</action>
<view-state id="myViewState" view="myViewFile" model="entity">
</view-state>
这两个例子将是“正确的”,但是所述一个与所述动作状态是更详细和明确规定的关注点分离。因此,如果在动作状态“prepareMyViewState”中引发异常,我们确切知道该名称的这个动作状态的作用与反映视图状态'myViewState'的抛出异常有关,该异常可能与准备或相关呈现视图状态。另外,如果您希望添加/编辑/删除服务调用,将来可以通过有意义的名称“prepareMyViewState”将它们置于自己的操作状态中,从而轻松地将它发现到流文件中。
再一次,我会强调这里没有错误的答案,我只想说在整个Web流应用程序中选择一个一致的“样式”。中间动作状态的第二种风格是我会使用的。
相关问题
- 1. SCXML状态图和UML状态图有什么区别?
- 2. 无状态和有状态小部件有什么区别?
- 3. 有状态和无状态lambda表达式有什么区别?
- 4. 游戏AI中状态评估与启发式有什么区别?
- 5. 回发数据和视图状态数据有什么区别
- 6. 视图状态和控制状态之间的区别
- 7. 状态图和有限状态机(FSM)之间的区别?
- 8. 有状态服务和状态感知服务有什么区别?
- 9. 处于活动状态和非活动状态的状态图
- 10. Android操作栏图标始终处于溢出状态
- 11. 如何在PyGTK中将状态图标或区域添加到状态图标
- 12. WRKACTJOB和WRKJOB在AS400中处于活动状态有什么区别?
- 13. Windows Workflow中的状态,活动和动作有什么区别
- 14. 状态机和工作流有什么区别?
- 15. 访问网络状态(ACCESS_NETWORK_STATE)和WIFI状态(ACCESS_WIFI_STATE)权限有什么区别?
- 16. 操作系统状态图
- 17. 睡眠线程处于什么状态?
- 18. 为什么ansi_nulls在数据库级别处于关闭状态时处于新会话状态?
- 19. Spring WebFlow - 视图状态或动作状态下的业务逻辑
- 20. 在操作栏处于活动状态时将图标添加到标签
- 21. 视图状态
- 22. 动作如在UML状态图状态
- 23. 在后台状态下继续操作
- 24. 无状态和有状态压缩之间的区别?
- 25. [ValidateModel]和ASP.NET中有效状态检查有什么区别?
- 26. 状态机有什么好处?
- 27. 检查手风琴的操作状态或关闭状态
- 28. 有状态和无状态流处理
- 29. 什么使统一缓冲区对象处于活动状态?
- 30. 当任何子视图处于活动状态时,AngularJs navbar父视图应该处于活动状态
最好在动作状态中使用评估标签,然后转换到另一个视图状态。视图状态旨在具有视图特定细节,而操作状态旨在评估表达式(方法)以进行后续转换。 –
那么当我们使用评估视图状态? – user4002899