如何处理面部流程

时间:2013-10-29 21:05:28

标签: jsf jsf-2.2 faces-flow

好的,我已经阅读了

http://docs.oracle.com/javaee/7/tutorial/doc/jsf-configure003.htm

https://blogs.oracle.com/arungupta/entry/jsf_2_2_faces_flow

还有一些帖子。通过阅读这些资源我无法回答的问题是:

如何通过导航到随机视图来摆脱流程?为了澄清我的问题,让我举一个例子。

假设我正在构建一个webapp,其侧边栏上有各种菜单(员工为crud,客户为crud,以及其他cruds和报告)。

然后我想开始一个facesflow来正确处理复杂对象的创建,将这个创建拆分成几个视图(BTW,我知道如何启动它)。但是,如果用户点击,我该如何结束流程,例如,生成与流无关的报告的链接。

流量会保留在内存中吗?离开与流程关联的视图会自动完成吗?

写下这个问题,我想到第二种选择是最好的。如果用户转到与流无关的另一个视图,则流程会神奇地消失。

2 个答案:

答案 0 :(得分:0)

好的,在同事的帮助下,我(凭经验)找到了这个问题的答案。

答案简短:

可以将流程留给你想要的任何视图,但是如果流程将要死亡取决于你如何离开它。如果您将通过帖子请求留给不在流量中的其他视图,则当前流程将正常结束。

但是,如果您通过获取请求,将其留给流中没有的任何视图,那么流将不会关闭,它将驻留在存储器中。

我会尽快详细说明。

<强>更新

为了澄清,我们通过使用Java VisualVM并检查流的实例是否会持续存在或被GC收集来发现这一点。

答案 1 :(得分:0)

您是对的,在流程内导航或流程外的视图需要使用h:commandButton / h:commandLink或编程处理导航。有关示例,请参阅this答案。

这肯定是Faces Flow的缺点,因为使用GET的导航应该是标准情况。