У меня есть компонент со списком глобальных данных в @ApplicationScoped, как это:Несогласованность с @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 компонент, который ссылается GlobalData через @ManagedProperty, как это:
@ManagedBean
@ViewScoped
public class SomePageController
{
@ManagedProperty(value="#{globalData}"
private GlobalData theGlobalData;
//also public getter and setter of theGlobalData
}
забавная вещь происходит, когда в SomePageController я хочу, чтобы добавить элемент в список GlobalData, как это:
public void someUIAction()
{
SomeItem item = bussinesProcess();
theGlobalData.addSomeData(item);
}
, потому что каждый раз, когда вызывается someUIAction, theGlobalData указывает на совершенно новый экземпляр с пустыми данными !!!! я могу подтвердить это, потому что я добавил некоторые Логгина информацию, как это:
public void someUIAction()
{
SomeItem item = bussinesProcess();
theGlobalData.addSomeData(item);
System.out.println(theGlobalData.toString());
}
, а затем я получил следующий вывод:
[email protected]
[email protected]
[email protected]
......
новый экземпляр на каждый запрос, я гугле но только информацию, я мог получаете с this guy с подобной проблемой, до сих пор я также пытался он решение не повезло = (
** ** Информация услуги для покупателей:. им развивается TomEE 1.5.2 веб-профиля Wich включает в себя Apache MyFaces также я проверил, что все АННОТАЦИИ взяты из javax.faces.bean пакета
добавил +1, так как его довольно распространенная ошибка, но я просто chequed все анонаты, и все они из пакета javax.faces.bean, честно говоря, я надеялся, что это было причиной ... = S – Harima555