SpringWebFlow:如何强制流重新启动?

SpringWebFlow:如何强制流重新启动?,spring,portlet,spring-webflow,spring-webflow-2,Spring,Portlet,Spring Webflow,Spring Webflow 2,我是SWF新手,意外地继承了SWF应用程序的维护 用户在屏幕顶部有一个水平菜单,其中显示5个选项。单击其中一个时,将在屏幕中加载一个portlet 两天前,我收到一个任务:每当用户单击其中一个选项时,portlet必须忽略其先前的状态并重新启动 示例:其中一个portlet称为“搜索”,另一个称为“报告”。现在,如果用户单击“搜索”,应用程序将显示一个小表单和一个“GO”按钮。单击“GO”后,应用程序将显示结果列表,每个结果都有一个编辑按钮。单击编辑其中一个后,应用程序将显示所选结果的详细信息。

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

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

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

示例:其中一个portlet称为“搜索”,另一个称为“报告”。现在,如果用户单击“搜索”,应用程序将显示一个小表单和一个“GO”按钮。单击“GO”后,应用程序将显示结果列表,每个结果都有一个编辑按钮。单击编辑其中一个后,应用程序将显示所选结果的详细信息。到目前为止,一切顺利

继续本例,假设用户现在单击菜单中的“报告”选项。appl将显示报告portlet及其自己的内容。同样,到目前为止,一切都很好

但是,如果用户现在在“搜索”中再次单击,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>

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


希望这能有所帮助。

我不确定我是否理解正确,但是如果你想从头开始创建一个流,你可以使用这个流的url,它可能是/youAppName/search.do或类似的东西,这对我很有帮助。谢谢