victorhalf
Green Team
Всем привет
Пытаюсь научиться пользоваться managed beans, да и явой заодно. Если кто этим добром пользуется подскажите как правильно всё организовать.
Ситуация такая - создал два бина: bean1 (session scope) и bean2 (view scope), в первом хранится всё что касается пользователя, во втором - собственно логика документа.
Хочется чтобы данные из bean1 можно было получить в bean2.
Что то типа bean2.setCreator(bean1.getUserName());
Покопался в инете, люди советуют использовать <managed-property></managed-property>. Мне это в общем то подходит, но не могу побороть проблему очерёдности загрузки бинов. Понятно что сессионный бин1 должен быть загружен раньше бин2, но почему то bean2 грузиться раньше bean1.
Bean2 у меня инициируется как DataSources в createObject, а вот где грузить Bean1 не могу понять. Делал и из передЗагрузкойСтраницы и послеЗагрузкиСтраницы и на контроле где у меня ApplicationLayout (в который обёрнуты все страницы), но всё равно вначале грузиться бин2, а потом бин1.
Может кто подскажет как правильно организовывать логику загрузки бинов, а то ведь ещё хочется
сделать application scope bean.
[doublepost=1507529230,1507193309][/doublepost]Как оказалось <managed-property> не очень то и нужно, можно просто через ExtLibUtil.resolveVariable() проверять наличие бина, при этом в первый раз он создастся автоматом, а потом просто будет его использовать.
Единственно что смущает , что эту проверку нужно вставлять в конструктор каждого бина где будет использоваться сессионный бин.
Пытаюсь научиться пользоваться managed beans, да и явой заодно. Если кто этим добром пользуется подскажите как правильно всё организовать.
Ситуация такая - создал два бина: bean1 (session scope) и bean2 (view scope), в первом хранится всё что касается пользователя, во втором - собственно логика документа.
Хочется чтобы данные из bean1 можно было получить в bean2.
Что то типа bean2.setCreator(bean1.getUserName());
Покопался в инете, люди советуют использовать <managed-property></managed-property>. Мне это в общем то подходит, но не могу побороть проблему очерёдности загрузки бинов. Понятно что сессионный бин1 должен быть загружен раньше бин2, но почему то bean2 грузиться раньше bean1.
Bean2 у меня инициируется как DataSources в createObject, а вот где грузить Bean1 не могу понять. Делал и из передЗагрузкойСтраницы и послеЗагрузкиСтраницы и на контроле где у меня ApplicationLayout (в который обёрнуты все страницы), но всё равно вначале грузиться бин2, а потом бин1.
Может кто подскажет как правильно организовывать логику загрузки бинов, а то ведь ещё хочется
сделать application scope bean.
[doublepost=1507529230,1507193309][/doublepost]Как оказалось <managed-property> не очень то и нужно, можно просто через ExtLibUtil.resolveVariable() проверять наличие бина, при этом в первый раз он создастся автоматом, а потом просто будет его использовать.
Единственно что смущает , что эту проверку нужно вставлять в конструктор каждого бина где будет использоваться сессионный бин.