【问题标题】:JSF Flow. End current flow and start a new oneJSF 流。结束当前流程并开始新的流程
【发布时间】:2018-01-02 21:19:38
【问题描述】:

我有一个网络应用程序,用户可以从该应用程序的几乎所有页面开始搜索。

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

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

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

我可以通过记录器看到流程已启动并且流程已完成但 jfwid 从未改变(我使用 faces-redirect=true,表单参数也不会改变)。

我该怎么做?

【问题讨论】:

    标签: jsf jsf-2.2 omnifaces flow-scope


    【解决方案1】:

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

     <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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-19
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      相关资源
      最近更新 更多