0

场景是这样的:

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

“防止”的一种方法是忽略请求。

我试图实现 aFlowExecutionListenerAdapter但这只能访问requestContext,viewviewState

所以问题是:最好的方法是什么以及如何做到这一点?处理程序、侦听器或拦截器。

4

2 回答 2

1

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

我写了一个实现,如果条件匹配,它会在 阶段FlowExecutionListenerAdapter抛出一个。Exceptionresuming

@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 - 线程:FlowExecutionListener - 如何拦截和重定向用户

于 2013-05-13T07:54:13.013 回答
0

设置history="discard"你的transition怎么样?

于 2013-05-08T15:12:38.067 回答