0

我在 webflow 级别有一个异常处理程序

<exception-handler bean="webflowExceptionHandlerBean"/>

我也有两个不同的流程,流程 A 和流程 B。流程 B 是流程 A 的子流程。

流程 A

<flow>
  <on-start>
    <!-- SOME SET -->
  </on-start>
  <view-state id="viewStateA">
    <transition id="goToFlowB" to="flowB"/>
  </view-state>
  <subflow-state id="flowB" subflow="flowB">
  </subflow-state>
</flow>

流程 B

<flow>
  <on-start>
    <!-- SOME SET -->
  </on-start>
  <view-state id="flowB">
    <on-entry>
    <!-- HERE THE EXCEPTION IS THROWN -->
    </on-entry>
    <transition id="goToT1" to="t1"/>
  </view-state>
</flow>

因此,当在流 B的入口中引发了webflowExceptionHandlerBean未捕获的异常时

webflowExceptionHandlerBean的配置实现FlowExecutionExceptionHandler

我试过使用它有效,但我想在每个流上只使用一个全局异常处理程序。

你知道发生了什么吗?我错过了什么吗?

4

1 回答 1

0

有一个像下面这样的抽象流定义

<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/webflow
                            http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd" abstract="true">
<exception-handler bean="webflowExceptionHandlerBean"/>
</flow>

然后,将抽象流程继承到您的流程 A 和流程 B 中,如下所示

<flow xmlns="http://www.springframework.org/schema/webflow"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/webflow
                            http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd" parent="abstract-flow">

您应该能够使用自定义异常处理程序全局处理您的异常

于 2014-04-07T11:03:07.327 回答