我是 Java 编程世界的新手(但不是编程),我已经用两只脚一直跳到我的脖子上试图解决一个问题。
我有一个 JSF 2.2 页面,该页面当前正在创建如下链接:
/folder1/destination.jsf正在执行一些工作,然后跳转到/anotherfolder/destination2.jsf并在跳转中丢失了 bean。我想将 bean 传递到第二页,并认为使用 JSF 2.2 FlowScoped bean 可以解决问题。
我创建了以下 FlowBuilder:
import java.io.Serializable;
import javax.enterprise.inject.Produces;
import javax.faces.flow.Flow;
import javax.faces.flow.builder.*;
public class MyPageJumpingFlow extends Object implements Serializable {
private static final long serialVersionUID = 1L;
@Produces
@FlowDefinition
public Flow defineFlow(@FlowBuilderParameter FlowBuilder flowBuilder) {
String flowId = "MyPageJumpingFlow";
flowBuilder.id("", flowId);
flowBuilder.viewNode(flowId, "/folder1/destination.xhtml").markAsStartNode();
flowBuilder.viewNode(flowId+"2", "/anotherfolder/desintation2.xhtml");
return(flowBuilder.getFlow());
}
destination.jsf 的支持 bean 以这种方式实例化:
@Named(value="destinationObject")
@FlowScoped("MyPageJumpingFlow")
我现在的问题是试图了解如何启动流程并将参数传递给它。
任何有关如何做到这一点或解决此问题的更好方法的建议将不胜感激。
环境: JSF 2.2、Java EE 7、EclipseLink、Oracle Weblogic 12.1.3