场景是这样的:
a 有一些视图状态。当我的 conversationScope 中的一个对象处于某种状态(例如不为空)时,我想防止用户返回。返回我的意思是:以太按下浏览器后退按钮或操纵执行参数。
“防止”的一种方法是忽略请求。
我试图实现 aFlowExecutionListenerAdapter
但这只能访问requestContext
,view
和viewState
所以问题是:最好的方法是什么以及如何做到这一点?处理程序、侦听器或拦截器。
场景是这样的:
a 有一些视图状态。当我的 conversationScope 中的一个对象处于某种状态(例如不为空)时,我想防止用户返回。返回我的意思是:以太按下浏览器后退按钮或操纵执行参数。
“防止”的一种方法是忽略请求。
我试图实现 aFlowExecutionListenerAdapter
但这只能访问requestContext
,view
和viewState
所以问题是:最好的方法是什么以及如何做到这一点?处理程序、侦听器或拦截器。
好吧,我解决了它很脏,但我解决了:
我写了一个实现,如果条件匹配,它会在 阶段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 - 线程:FlowExecutionListener - 如何拦截和重定向用户
设置history="discard"
你的transition怎么样?