0

有一个托管 bean (DemoManagedBean.java),它在 (sample.xhtml)XHTML 页面上保存一些数据。

sample.xhtml 中有一个重定向链接,它打开同一页面(sample.xhtml)的一个新选项卡,但加载了不同的数据。

问题 - 因为只有一个 DemoManagedBean.java 实例,因此无法进一步处理任何内容,即;一个选项卡上的更改会影响所有其他选项卡。

有没有办法让每个选项卡都有多个实例来保存特定选项卡的数据?

谢谢,

迪内什

4

1 回答 1

0

您可以通过设置正确的 bean scope来控制它。在您的特定情况下,您需要将 bean 放在请求范围或视图范围中,具体取决于您是否需要基于每个视图的状态。

使用标准的 JSF bean 管理 API,就是这样(不需要 XML!):

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class DemoManagedBean {
    // ...
}

未指定范围注释时@XxxScoped,默认为@NoneScope. 但是,您的描述与会话或应用程序范围相匹配。也许您在没有真正理解您实际在做什么的情况下明确设置了@SessionScopedor注释。@ApplicationScoped或者您可能出于某种原因使用 Spring 来管理 bean,@Controller没有任何明确指定范围的 Spring 默认为应用程序范围。

也可以看看:

于 2013-06-21T11:38:12.640 回答