SpringWebFlow:如何强制流重新启动?
我是SWF新手,意外地继承了SWF应用程序的维护 用户在屏幕顶部有一个水平菜单,其中显示5个选项。单击其中一个时,将在屏幕中加载一个portlet 两天前,我收到一个任务:每当用户单击其中一个选项时,portlet必须忽略其先前的状态并重新启动 示例:其中一个portlet称为“搜索”,另一个称为“报告”。现在,如果用户单击“搜索”,应用程序将显示一个小表单和一个“GO”按钮。单击“GO”后,应用程序将显示结果列表,每个结果都有一个编辑按钮。单击编辑其中一个后,应用程序将显示所选结果的详细信息。到目前为止,一切顺利 继续本例,假设用户现在单击菜单中的“报告”选项。appl将显示报告portlet及其自己的内容。同样,到目前为止,一切都很好 但是,如果用户现在在“搜索”中再次单击,portlet将显示其最后一个状态,即先前搜索项的版本 我被要求改变这种行为,因此每次用户单击“搜索”时,它都会打开为空,也就是说,portlet的webflow将从头开始 我该怎么做?谁能帮帮我吗 我搜索了SMF的文档,还研究了spring-webflow-config-2.0.xsd文件,为这个案例寻找一些特定的配置,但没有结果 谢谢 FQL尝试以下方法: 创建一个新的流定义xml文件,您应该在其中放置一组将重定向到流的结束状态,以及一组将转换到结束状态的全局转换。因此,您应该为每个菜单项添加一个结束状态和一个全局转换SpringWebFlow:如何强制流重新启动?,spring,portlet,spring-webflow,spring-webflow-2,Spring,Portlet,Spring Webflow,Spring Webflow 2,我是SWF新手,意外地继承了SWF应用程序的维护 用户在屏幕顶部有一个水平菜单,其中显示5个选项。单击其中一个时,将在屏幕中加载一个portlet 两天前,我收到一个任务:每当用户单击其中一个选项时,portlet必须忽略其先前的状态并重新启动 示例:其中一个portlet称为“搜索”,另一个称为“报告”。现在,如果用户单击“搜索”,应用程序将显示一个小表单和一个“GO”按钮。单击“GO”后,应用程序将显示结果列表,每个结果都有一个编辑按钮。单击编辑其中一个后,应用程序将显示所选结果的详细信息。
<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>
这会导致当用户单击菜单项时,其全局转换将触发,从而导致转换到最终状态,并导致流重定向到所需流
希望这能有所帮助。我不确定我是否理解正确,但是如果你想从头开始创建一个流,你可以使用这个流的url,它可能是/youAppName/search.do或类似的东西,这对我很有帮助。谢谢