1

JSF 2.0,Primefaces

我有一个基于会话的 bean (Bean1) 和相应的视图,其中包含用于动态修改数据的 ajax 调用。这是理想的,因为它不需要在非 ajax 按钮提交时加载页面。

但是 - 我处于他们希望在同一个浏览器中打开多个视图并允许每个视图独立工作的情况(这将是一个请求范围)。因此,从技术上讲,一个参数是“请求”。但是 - 我想要会话视图给我的 AJAX 功能。这个参数目前显然是因为它的会话在浏览器之间共享。这会导致可用性问题。

是否可以有一个“充当”请求参数的参数,而不是会话?因此,每个窗口都对会话视图打开,但参数处于“请求”模式并单独分配给窗口。

4

1 回答 1

3

只需将 bean 放在视图范围而不是会话范围中。

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class Bean1 implements Serializable {
    // ...
}

这样,每个浏览器选项卡/窗口都将完全按照您的意图自动获取自己的实例,而无需手动请求参数骇客。

也可以看看:

于 2013-09-25T19:11:34.757 回答