我是Java编程世界的新手(但不是编程),我在试图解决问题的过程中一直跳到我的脖子上。
我有一个JSF 2.2页面,目前正在创建一个这样的链接:
/folder1/destination.jsf 正在执行一些工作,然后跳转到 /anfolfolder/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