JSF Flow。结束当前流程并开始新的流程

问题描述:

我有一个Web应用程序,用户可以从应用程序的几乎所有页面开始搜索。JSF Flow。结束当前流程并开始新的流程

用户每次搜索我想开始一个新的流程,所以基本上我有:

<p:commandLink action="#{myBean.startNewSearch}" .../> 

public void startNewSearch(){ 
    //Some validations and pre-conditions 
    Faces.navigate("exitSearchFlow"); 
    //Perform search 
    return "startSearchFlow"; 
} 

我可以与该流程启动和流程完成,但jfwid永远不会改变的记录器看(我正在使用faces-redirect = true,表单参数也不会改变)。

我该怎么做?

您必须在主流程内定义子流程。 定义搜索流程,并在您的搜索流程中使用流程调用定义其他流程。例如:

<flow-definition id="searchFlow"> 
     <flow-call id="subFlowA"> 
     <flow-reference> 
      <flow-id>subFlowA-File-ID</flow-id> 
     </flow-reference> 
     </flow-call> 
     <flow-call id="subFlowB"> 
     </flow-call> 
</flow-definition> 

您可以将参数传递给子流。要调用子流,请使用Flow-Call的Id。例如:

<h:commandButton value="Call Flow A" action="subFlowA"/> 

您可以在下面的链接的详细信息:

JSF Flows