我正在使用spring web flow处理Web应用程序。当我正在处理一个flow.xml
文件时,我得到了一个关于它的决定状态 -
<decision-state id="checkPermissin">
<if test="requestParameters.canApprove" then="approve" else="warning" />
</decision-state>
当请求到达flow.xml
时,它会从中获取请求参数canApprove
并测试它是真还是假。然后它会进入approve
或warning
状态。
我的问题是 - 我可以从canApprove
文件中记录/打印flow.xml
的状态吗?
答案 0 :(得分:2)
您可以在“决策状态”的末尾添加一个退出标记,并在类路径上调用任何服务方法,spring bean或静态方法。
试试这个(未经测试):
<decision-state id="checkPermissin">
<if test="requestParameters.canApprove" then="approve" else="warning" />
<on-exit>
<evaluate expression="T(org.apache.log4j.Logger).getLogger('someLogger').info(requestParameters.canApprove)"/>
</on-exit>
</decision-state>
上述解决方案更能满足您的要求。记录这个的“正确”方法是扩展FlowExecutionListenerAdapter并监听当前的流+决策状态ID“checkPermissin”,然后记录您对该流的任何需求,但它将涉及flow.xml文件之外的更多设置/编码。 (参见:Catch "dead" session in Spring webflow:示例用于捕获异常但可以轻松地进行调整以记录流中的任何内容)