我有全局数据的@ApplicationScoped像这样的列表一个bean:不一致之处@ManagedProperty
@ApplicationScoped
@ManagedBean
public class GlobalData
{
private List data = new ArrayList();
//getter and setterss goes here..
public void addSomeData(Object item) { data.add(item); }
}
也对我有@ViewScoped豆,通过这样的@ManagedProperty引用全球国际:
@ManagedBean
@ViewScoped
public class SomePageController
{
@ManagedProperty(value="#{globalData}"
private GlobalData theGlobalData;
//also public getter and setter of theGlobalData
}
有趣的进来SomePageController当我要增加一个项目到全球国际的这样的名单:
public void someUIAction()
{
SomeItem item = bussinesProcess();
theGlobalData.addSomeData(item);
}
因为每次调用某个UIAction时,GlobalData都会指向一个全新的实例,并显示一个空的数据!我可以证实这一点,因为我增加了一些像这样的洛信息:
public void someUIAction()
{
SomeItem item = bussinesProcess();
theGlobalData.addSomeData(item);
System.out.println(theGlobalData.toString());
}
,然后我得到了以下的输出:
[email protected]
[email protected]
[email protected]
......
在每次请求一个新的实例,我用Google搜索,但我的唯一信息得到的是this guy类似的问题,还是我也尝试他没有运气的解决方案=(
** aditional的信息**: IM与TomEE 1.5.2网络配置文件至极发展包括Apache的MyFaces的 还我检查了所有的anotations来自javax.faces.bean包
添加了一个+1,因为它是一个相当常见的错误,但我只是检查了所有的anontations,它们都来自javax.faces.bean包,老实说我希望这是原因... = S – Harima555