我使用PrimeFaces UI庫和JSF 2PrimeFaces <p:poll>刷新無效後臺bean的成員,如果豆ViewScoped
我有一個支持bean:
public class JobMgmtBean extends ClientBeanBase implements Serializable
和
public class ClientBeanBase extends BeanBase
(所以繼承是JobMgmtBean:ClientBeanBase:BeanBase
)。
我想設置我JobMgmtBean
從請求範圍以查看範圍的,但同時我sessionVars
這是在BeanBase
定義後變成空和bean不能正常工作了。
我在BeanBase
這樣初始化sessionVars
:
protected Map<String,Object> sessionVars = null;
ex = FacesContext.getCurrentInstance().getExternalContext();
sessionVars = ex.getSessionMap();
我刷新我的一些PrimeFaces UI組件的每5秒(使用<p:poll interval="5"...>
)頁面上,和幾個刷新後sessionVars
變爲零。
爲什麼會發生這種情況?
ClientBeanBase和BeanBase都是deserailized也註釋爲@ManagedBean?如果是這樣,他們有什麼範圍?代碼「sessionVars = ex.getSessionMap();」在哪裏?在構造函數中? postconstruct? – Damian 2012-07-12 12:17:52
'ClientBeanBase'和'BeanBase'不是託管bean,所以沒有它們的範圍。 'sessionVars'位於'JobMgmtBean'構造函數中調用的initBeanBase()中。這有幫助嗎? – Danijel 2012-07-12 12:51:29
I ment BeanBase :: intiBeanBase()。 – Danijel 2012-07-12 13:25:10