0

我有一个 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,表单参数也不会改变)。

我怎样才能做到这一点?

4

1 回答 1

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"/>

您可以在以下链接中找到详细信息:

JSF 流

于 2017-08-07T21:50:29.357 回答