您好我将使用方法在支持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是另一种方式吗?
答案 0 :(得分:0)
FlowHandler是一个抽象类,旨在供JSF框架内部使用。如果要导航到JSF流的一个或另一个入口节点,只需返回目标节点的名称以进行导航(仅允许HTTP POST)。或者,您可以通过方法调用节点或交换节点进入流程,并在那里实现所需的导航条件。
您可以阅读this发布并从GitHub下载示例项目。它将说明与JSF流相关的一些技术。