gpt4 book ai didi

Spring Webflow : how to force a flow to start again?

转载 作者:行者123 更新时间:2023-12-04 05:29:07 24 4
gpt4 key购买 nike

我是 SWF 新手,意外地继承了 SWF 应用程序的维护工作。

用户在屏幕顶部有一个水平菜单,其中出现 5 个选项。单击其中之一时,将在屏幕中加载一个 portlet。

两天前,我收到一个任务:每当用户单击这些选项之一时,portlet 必须忽略其先前的状态并重新启动。

示例:其中一个 portlet 称为“SEARCH”,另一个名为“REPORTS”。今天,如果用户点击“搜索”,应用程序会显示一个小表格和一个“开始”按钮。单击“GO”后,应用程序会显示一个结果列表,每个结果都有一个编辑按钮。单击以编辑其中之一后,应用程序会显示所选结果的详细信息。到目前为止,很好。

继续该示例,假设用户现在单击菜单中的“报告”选项。该应用程序将显示报告 portlet 及其自己的内容。再一次,到目前为止,很好。

但是,如果用户现在再次单击“SEARCH”,Portlet 将显示其最后状态,即先前搜索项目的版本。

我被要求更改此行为,因此每次用户单击“搜索”时,它都会打开为空,也就是说,portlet 的 webflow 将重新从头开始。

我该怎么做?有人可以帮我吗?

我搜索了SMF的文档,也研究了spring-webflow-config-2.0.xsd这个文件,找了一些针对这个案例的具体配置,但无济于事。

谢谢,

FQL

最佳答案

试试这个方法:

创建一个新的流定义 xml 文件,您应该在其中放置一组将重定向到流的结束状态,以及一组将转换到结束状态的全局转换。所以你应该为每个菜单项添加一个结束状态和一个全局转换。

<end-state id="searchMenuItem" view="flowRedirect:searchFlowName" />

<end-state id="reportsMenuItem" view="flowRedirect:reportsFlowName" />

<global-transitions>
<transition on="searchMenuItem" to="searchMenuItem" />
<transition on="reportsMenuItem" to="reportsMenuItem" />
</global-transitions>

将此流定义添加到流注册表和所有流作为父流。因此,所有流程都应该具有可见的最终状态和全局转换。

编辑菜单链接以使用全局转换:
<a href="${flowExecutionUrl}&_eventId=searchMenuItem">Search</a>   
<a href="${flowExecutionUrl}&_eventId=reportsMenuItem">Reports</a>

这会导致当用户单击菜单项时,其全局转换将触发,从而导致转换到最终状态,并将流程重定向到所需的流程。

希望这会有所帮助。

关于 Spring Webflow : how to force a flow to start again?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12848387/

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