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"/>
Подробности можно найти по следующей ссылке: