我有一个Web应用程序,用户可以从该应用程序的几乎所有页面开始搜索。
每次用户搜索我都想开始一个新的流程,所以基本上我有:
<p:commandLink action="#{myBean.startNewSearch}" .../>
public void startNewSearch(){
//Some validations and pre-conditions
Faces.navigate("exitSearchFlow");
//Perform search
return "startSearchFlow";
}
我可以通过记录器看到流程已启动并且流程已完成但jfwid从未更改(我使用faces-redirect = true,表单参数也不会更改)。
我该怎么做?
答案 0 :(得分:0)
您必须在主流程中定义子流程。 定义用于搜索的流,并在搜索流内定义其他流,使用流调用。例如:
<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"/>
您可以在以下链接中找到详细信息: