Как использовать потоки JSF с помощью FlowHandler
Привет я хотел бы пройти через этапы в бэк поддержки с помощью метода:
transition(FacesContext context, Flow sourceFlow, Flow targetFlow, FlowCallNode outboundCallNode, String toViewId);
из
javax.faces.flow.FlowHandler
или другим способом
например:
public void startFlow(){
// in this example we dont use jsf tags
// (<h:commandButton /> and <h:commandLink />) to navigate user through flow steps
FlowHandler handler = context.getApplication().getFlowHandler();
Flow targetFlow = handler.getFlow(context, "", "registerFlow");
boolean isAdmin = checkIfAdmin();
if(isAdmin){
// here we forward user to viewNode of flow that name step1
handler.transition(context, null, targetFlow, null, "step1");
}
else{
// here we forward user to viewNode of flow that name step1ForAdmin
handler.transition(context, null, targetFlow, null, "step1ForAdmin");
}
}
Это возможно сделать в бобе? или meaby это другой способ сделать это?
1 ответ
FlowHandler - это абстрактный класс, предназначенный для внутреннего использования инфраструктуры JSF. Если вы хотите перейти к тому или иному узлу входа потока JSF, просто верните имя целевого узла для навигации (разрешен только HTTP POST). Или вы можете войти в поток через узел вызова метода или узел коммутатора и реализовать там необходимые условия навигации.
Вы можете прочитать этот пост и загрузить пример проекта с GitHub. Он проиллюстрирует вас на некоторых методах, связанных с потоками JSF.