JSF SessionScoped bean没有保留属性

时间:2013-06-06 16:37:15

标签: jsf primefaces session-scope

我正在使用primefaces开发一个jsf应用程序,并拥有一个由各种视图使用的SalesBean

@ManagedBean
@ViewScoped
public class SalesBean implements Serializable, IGlobals {

private static final long serialVersionUID = 2384518099615211725L;

@ManagedProperty(value = "#{applicationBean}")
private ApplicationBean application;

@ManagedProperty(value = "#{sessionSettingsBean}")
private SessionSettingsBean settings;

    @PostConstruct
public void refresh() {     
    this.trader=settings.getSelectedTrader();
}



import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped

public class SessionSettingsBean implements Serializable {

private Trader selectedTrader;

        public Trader getSelectedTrader() {
    return selectedTrader;
}

public void setSelectedTrader(Trader selectedTrader) {
    this.selectedTrader = selectedTrader;
}
}

postConstruct应该表示SalesBean属性引用了sessionBean的属性。

在一个视图中,我将属性保存到注入的会话bean

settings.setSelectedTrader(商);

在另一个视图中,我想使用settings.getSelectedTrader(),但是当我调试@PostConstruct时,设置的selectedTrader属性为null,即使我检查它最初在sessionBean中设置时是否被正确实例化了以前的观点。

任何人都可以给出一个关于发生了什么的指针,可能会有几个版本的会话bean(在会话开始时只调用一个构造函数),那么如何在视图之间将属性置为空白 - 任何想法/建议非常感谢

0 个答案:

没有答案