Я решил это сам.
Определение JSF потока можно сделать 2-мя способами:
- с файлом конфигурации: flowname-flow.xml
- с классом конфигурации: flowname.java
Первый может только имя потока, с указанием местоположения по умолчанию в корневой папке.
Второй может определить местоположение глубже в структуре папок.
Пример файла конфигурации: testflow.flow.xml
только ид = «testFlow» могут быть добавлены к определению и не путь. Это значение по умолчанию для testFlow/testFlow.xhtml для первой страницы.
<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<flow-definition id="testFlow">
<flow-return id="returnFromTestFlow">
<from-outcome>#{testFlow.returnValue}</from-outcome>
</flow-return>
</flow-definition>
</faces-config>
Класс Пример конфигурации: TestFlow.java
Добавьте полный путь к узлу просмотра в этом потоке.
public class TestFlow implements Serializable {
private static final long serialVersionUID = 1L;
@Produces
@FlowDefinition
public Flow defineFlow(@FlowBuilderParameter FlowBuilder flowBuilder) {
String flowId = "testFlow";
flowBuilder.id("", flowId);
flowBuilder.viewNode(flowId,
"/other/location/flow/" + flowId + ".xhtml").
markAsStartNode();
flowBuilder.viewNode("testFlow2", "/other/location/flow/testFlow2.xhtml");
flowBuilder.viewNode("testFlow3", "/other/location/flow/testFlow3.xhtml");
...
Это все люди!