2016-08-17 19 views
1

我有以下的在我的流程定義來定義:的Webflow在渲染/在入境異常仍運行在-退出方法

<view-state id="switchboard" view="switchboard2" model="reservationForm"> 
    <on-entry> 
     <evaluate expression="flowController.enterSwitchboard(flowRequestContext)" /> 
     <evaluate expression="flowController.populateActionFlags(flowRequestContext)" /> 
    </on-entry> 
    <transition on="prev" to="switchboardAction" validate="false" /> 
    <transition on="*" to="switchboardAction" /> 
    <transition on-exception="java.lang.Exception" to="systemErrorView" /> 
    <on-exit> 
     <evaluate expression="flowController.exitSwitchboard(flowRequestContext)" /> 
     <evaluate expression="flowController.clearWebflowForms(flowRequestContext)" /> 
    </on-exit> 
</view-state> 

正在發生的事情是一個錯誤(在這種特殊情況下,拋出:IllegalArgumentException,但也可能是其他異常)在populateActionFlags()方法是ocurring,但exitSwitchboard()方法仍然是射擊。在此之後,clearWebflowForms()方法將引發異常,因爲由於之前的異常導致模型被搞砸了。這造成了無限循環。

我需要的是:當發生異常時,繞過退出方法並轉到在一節中定義的錯誤狀態(「systemErrorView」)。不要過關,不要收200美元。

Webflow版本是2.4.1。

任何人都可以協助嗎?

傑森

回答

1

嘗試在你的流量使用一個全球性的轉變:

<global-transitions> 
    <transition on-exception="java.lang.Exception" to="systemErrorView"/> 
</global-transitions> 

記住這將由你流的所有國家共享。

如果您不希望它被共享,則可能需要爲此創建自定義例外。

+0

試過了,沒有運氣。 – Jason

+0

當你嘗試時發生了什麼? – rptmat57

+0

你也可以用來試試看看你是否在某個地方 – rptmat57

1

on-exit將在有意圖的視圖狀態結束時執行。聲明它意味着與java中的finally塊相同。

在你的情況,你可能會想這樣做

<transition on="prev" to="switchboardAction" validate="false" > 
    <evaluate expression="flowController.exitSwitchboard(flowRequestContext)" /> 
    <evaluate expression="flowController.clearWebflowForms(flowRequestContext) 
</transition> 
<transition on="*" to="switchboardAction" > 
    <evaluate expression="flowController.exitSwitchboard(flowRequestContext)" /> 
    <evaluate expression="flowController.clearWebflowForms(flowRequestContext) 
</transition> 

此執行評估每個過渡語句,但不例外。

相關問題