2014-03-28 99 views
0

我尝试新的“流”功能。 它看起来非常有希望,因为它可以让你有一个跨越多个相关视图的托管bean。Flowscope和get请求

不幸的是,与post请求才有效。

有没有办法进入使用GET请求流?我发现的所有例子都是在流程之外使用起始表单。我想输入点击Primefaces菜单栏中的项目,并且据我所知,我只能在那里放置一个链接...

假设用户在一个页面中间流。如果发送了对流中间的视图的获取请求并且流不再活跃(或者将流信息从查询字符串参数中删除),则服务器响应一个错误的错误页面。在这种情况下,是否可以将其重定向到流程的第一个节点

通过流动的视图节点导航我可以看到在查询字符串其中最有可能是一个ID的特殊参数。有没有可能隐藏这个细节?

感谢 菲利波

回答

0

是的,只是如果流名为流1,你可以写这样的:

<h:link value="Enter Flow" outcome="flow1"/> 

就是这样。

关于导航,没有什么能够以明确的方式处理它,但是您可以重写FlowHandler实现,特别是方法clientWindowTransition(...),并检查该部分是否处于活动状态并执行必要的操作。要从流程之外的导航下退出流程,可以重写ViewHandler.createView(...)方法并添加转换。

流状态绑定到客户端窗口的ID,这是你所看到的查询参数。这个细节是必要的,因为它提供了一个持续跨越导航的状态,但不像包含多个窗口或选项卡的会话状态那么大。

我建议使用Apache MyFaces JSF 2.2 Implementation,因为该解决方案已考虑到情况下,像多重嵌套流。它工作得很好。看看这个来自Michael Kurz JSF Live blog on Github的JSF 2.2示例,这可能会有所帮助。