我一直在研究新的java 1.8 + CDI + WildFly和JSF 2.2。
我已经阅读了很多关于范围的内容,但仍然无法确定我应该使用哪个范围,或者让单个控制器使用不同视图的最佳做法是什么。
无法使用var unchecked = $('input[name="ringIds[]"]').not(':checked').map(function(i,v) {
return this.name + '=' + this.value;
})
.get().join('&');
,因为它仅适用于一个视图。
@ViewScoped
看起来不是正确的道路,@SessionScoped
对于我正在寻找的东西看起来太多了。
答案 0 :(得分:0)
然后使用DeltaSpike @ViewAccessScoped
从他们的文件(强调我的)
如果是对话,您必须手动取消范围bean(或者它们将在超时后自动终止)。但是,有时您需要的bean的生命周期尽可能长且尽可能短 - 这些bean会自动终止(尽快终止)。在这种用例中,您可以使用此范围。 简单的规则是,只要bean被页面引用 - bean就可用于下一页(如果再次使用它,则bean将再次转发)。重要的是它基于页面的view-id(它不基于请求),因此,例如,如果请求不访问所有视图访问范围的bean,则Ajax请求不会触发清理。页。这也是名称@ViewAccessScoped的原因。
答案 1 :(得分:0)
如果您的应用程序中有一个已定义的入口点和出口点,则可以使用JSF 2.2 @FlowScope
什么是Faces流程?
具有明确
的JSF视图(和相关工件)的集合 定义了一些应用程序的已定义入口和出口点 具体含义由开发商负责。通常是面部中的对象 flow旨在允许用户完成任务 需要输入多个不同的视图。规范 流程的例子是"订单结账"进程所在的用户 输入地址,付款,发货信息等,然后 最后提交整个结果,下订单。