JSF Flow. Завершить текущий поток и начать новый

У меня есть веб-приложение, в котором пользователь может начать поиск практически со всех страниц приложения.

Каждый раз, когда пользователь ищет, я хотел бы начать новый поток, поэтому в основном я имею:

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

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

С помощью регистраторов я вижу, что поток запущен и поток завершен, но jfwid никогда не меняется (я использую Face-Redirect = True, параметр формы тоже не меняется).

Как я могу это сделать?

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>

Вы можете передавать параметры в подпоток. Для вызова подпотоков используйте идентификатор потока вызова. Пример:

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

Подробности можно найти по следующей ссылке:

JSF Flows

Другие вопросы по тегам