我使用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