如何使用flowHandler使用jsf流

时间:2015-09-23 08:42:16

标签: jsf jsf-2.2 faces-flow

您好我将使用方法在支持bean中执行流程步骤:

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");
    }

}

可以在支持bean中做到这一点吗?或meaby是另一种方式吗?

1 个答案:

答案 0 :(得分:0)

FlowHandler是一个抽象类,旨在供JSF框架内部使用。如果要导航到JSF流的一个或另一个入口节点,只需返回目标节点的名称以进行导航(仅允许HTTP POST)。或者,您可以通过方法调用节点或交换节点进入流程,并在那里实现所需的导航条件。

您可以阅读this发布并从GitHub下载示例项目。它将说明与JSF流相关的一些技术。