Spring WebFlow - 取消请求

时间:2013-05-08 11:48:22

标签: spring spring-webflow

情景如下:

有一些观点状态。 当我的conversationScope中的对象处于某种状态(例如,不为空)时,我想阻止用户返回。 通过返回我的意思是:以太按下浏览器后退按钮或操纵执行参数。

“阻止”的一种方式是忽略请求。

我尝试实施FlowExecutionListenerAdapter,但只能访问requestContextviewviewState

所以问题是: 什么以及如何最好的方式来达到这个目的? 处理程序,监听器或拦截器。

2 个答案:

答案 0 :(得分:1)

好吧,我解决了它很脏,但我解决了它:

我写了一个FlowExecutionListenerAdapter实现,如果标准匹配,会在Exception阶段抛出resuming

@Override
public void resuming(RequestContext context)
{
    if (!backwardNavigation)
    {
        if (!context.getFlowExecutionContext().getActiveSession().getState().getId()
                .equals(attributeConfigurer.getFinishViewState()))
        {
            throw new ConfirmationFinishRedirectException();
        }

    }
}

并且我在抛出它的状态中捕获异常。

<transition on-exception="example.ConfirmationFinishRedirectException" to="finishState" bind="false" validate="false" history="discard"/>

我从这个网站得到了这个解决方案的想法:SpringForum - Thread: FlowExecutionListener - how to intercept and redirect user

答案 1 :(得分:0)

如何在过渡时设置history="discard"呢?