我有全局數據的@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