Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSF + Spring 
:(
    Опции темы
Bandit
Дата 1.10.2009, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 27.11.2007
Где: Минск

Репутация: нет
Всего: нет



Доброго времени суток форумчанам.
Использую связку JSF + Spring.

Наткнулся на проблему(может это вовсе не проблема).

Проблема:
Есть 2е страницы(на самом деле их намного больше). Page1, Page2
Для каждой из них свой бин обработчик. Bean1, Bean2 находятся в scoup=session
Когда на странице Page1 обрабатывается форма и должен происходить переход на Page2(где отображается результат запроса).

Вопросы:
1. Можно ли указать для бинов инициализирующие методы? (Знаю что в Spring можно указать init method, но прописаны они у меня в faces-config.xml)
2. Можно ли из метода первого бина проинициализировать второй бин указаный в faces-config.xml и имеющий связь:

Код

<managed-property>
            <property-name>commonService</property-name>
            <property-class>ru.common.services.CommonService</property-class>
            <value>#{commonService}</value>
        </managed-property>

с бином commonService описаном в applicationContext.xml спринга? Т.е. заставить Spring или JSF простроить бин по указаным правилам.
PM MAIL   Вверх
powerOn
Дата 1.10.2009, 20:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(Bandit @  1.10.2009,  18:19 Найти цитируемый пост)
1. Можно ли указать для бинов инициализирующие методы? (Знаю что в Spring можно указать init method, но прописаны они у меня в faces-config.xml)


ИМХО, тогда уж лучше все managed-бины сделать спринговыми, и настроить init-методы через него.

Цитата(Bandit @  1.10.2009,  18:19 Найти цитируемый пост)
2. Можно ли из метода первого бина проинициализировать второй бин указаный в faces-config.xml и имеющий связь:


Ничего не понял. Бину1 дать ссылку на бин1 имеется ввиду?


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
MisterCleric
Дата 2.10.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет. 
Вообще смотри: для связки JSF+Spring достаточно выполнить такие действия:
1. Все бины описываешь в spring-контексте и там же их зависимости, т.е. dependency injection
2. В faces-config.xml досточно прописать так:
Код

<variable-resolver>
            org.springframework.web.jsf.DelegatingVariableResolver
        </variable-resolver>

и все spring-бины автоматически станут jsf-бинами.
Это пример из моего уже давно сданного в эксплуатацию проекта


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Bandit
Дата 2.10.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 27.11.2007
Где: Минск

Репутация: нет
Всего: нет



Цитата(powerOn @ 1.10.2009,  20:24)
Цитата(Bandit @  1.10.2009,  18:19 Найти цитируемый пост)
1. Можно ли указать для бинов инициализирующие методы? (Знаю что в Spring можно указать init method, но прописаны они у меня в faces-config.xml)


ИМХО, тогда уж лучше все managed-бины сделать спринговыми, и настроить init-методы через него.

Цитата(Bandit @  1.10.2009,  18:19 Найти цитируемый пост)
2. Можно ли из метода первого бина проинициализировать второй бин указаный в faces-config.xml и имеющий связь:



>> Ничего не понял. Бину1 дать ссылку на бин1 имеется ввиду?

Плохо выразился smile... Можно ли в бине1 проинициализировать бин2 со связями указаными в faces-config.xml и(или) applicationContext.xml.
Просто если бин2 еще не создан, а я его пытаюсь создать способом аля:

Код

        Bean2 bean2 = (Bean2) ex.getSessionMap().get("bean2");
        if(bean2 == null){
            bean2 = new Bean2();
            ex.getSessionMap().put("bean2",bean2);
        }
        bean2.selectValuesFromDataBase();

то bean2.selectValuesFromDataBase(); в котором юзается бин3 выборки из базы оказывается не проинициализированным Spring-ом. 

т.е. приблизительно такая зависимость устанавливаемых свойств
Код

      <managed-bean>
        <description>Bean2</description>
        <managed-bean-name>bean2</managed-bean-name>
        <managed-bean-class>ru.Bean2</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
        <managed-property>
            <property-name>bean3</property-name>
            <property-class>ru.Bean3</property-class>
            <value>#{bean3}</value>
        </managed-property>

PM MAIL   Вверх
powerOn
Дата 2.10.2009, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Инициализация бина - это ответственность самого бина и контейнера (JSF, Spring). Руками её делать не есть гуд.

Цитата(Bandit @  2.10.2009,  13:07 Найти цитируемый пост)
Просто если бин2 еще не создан, а я его пытаюсь создать способом аля:


Это нарушение принципов IoC.






--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Bandit
Дата 2.10.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 27.11.2007
Где: Минск

Репутация: нет
Всего: нет



Цитата(powerOn @  2.10.2009,  12:25 Найти цитируемый пост)
Это нарушение принципов IoC.



Запомним и уесним smile))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.