gpt4 book ai didi

java - 使 Spring Webflow 中的上一页快照无效

转载 作者:行者123 更新时间:2023-11-30 05:19:45 24 4
gpt4 key购买 nike

我正在使用 Spring Webflow,并且我正在从 view-state 重定向到 action-state 再到 view-state。现在,当用户处于第二个 View 状态时,我不希望用户能够单击浏览器后退按钮并转到上一页。

我发现,history="invalidate"可以用来使上一页的快照失效。我尝试在转换中使用它。但是,它不起作用(浏览器后退按钮未禁用)。

那么,我可以向 webflow 状态添加什么,以禁用后退按钮并仅允许用户使用页面内提供的导航控件?

谢谢

最佳答案

您将 history 添加到哪个州属性?

首先,<action-state>不支持( https://jira.spring.io/browse/SWF-1481 )。

您必须将其添加到第一个 <view-state>的转变。如果您只想对 <action-state> 中发生的事情有条件地执行此操作,那么,还不够。我们最终创建了从 <action-state> 调用的 Java 代码。方法来做到这一点。

/**
* Invalidate WebFlow history. For use in action-state, where the transition element is not able
* to specify to invalidate history.
*/
public static void invalidateHistory() {
RequestContext context = RequestContextHolder.getRequestContext();

synchronized(context.getFlowExecutionContext()) {
DefaultFlowExecutionRepository r =
(DefaultFlowExecutionRepository)
((FlowExecutorImpl)
context.getActiveFlow().
getApplicationContext().
getBean(FlowExecutor.class)).getExecutionRepository();
r.removeAllFlowExecutionSnapshots((FlowExecution)context.getFlowExecutionContext());
}
}

(另请注意,“invalidate”会使状态及其之前的所有状态无效。如果您只想阻止该单个状态,则可以使用“discard”。https://docs.spring.io/spring-webflow/docs/current/reference/html/views.html#view-backtracking)

关于java - 使 Spring Webflow 中的上一页快照无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com