![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
introtel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2008 Репутация: нет Всего: нет |
Доброго времени суток!
В JSF getterы и setterы bean-ов вызываются несколько раз за время загружения страницы. Кто нибудь может обьяснить зачем и почему? из Гугла узнал что "вызывается несколько раз за время рендеринга, валидации и еще чего-то там", но в чем причина реализации такого обращения? Заранее спасибо! |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 32 Всего: 81 |
В цикле обработки запроса состояние бина (читай значения полей объекта) может изменяться в следствие работы какого-то кода бина. Актуальные значения можно получить только вызвав соотв. геттер.
|
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Как тебе уже сказал гугл, обработка запроса в JSF имеет в какой-то степени сложную логику, состоящую из нескольких фаз. На каждой из них JSF нужно выполнять определенные действия: конвертировать/валидировать значения запроса, строить/восстанавливать/рендерить view, выполнять action-ы и т.д. Ну и, соответственно, для этого необходимо получать/устанавливать данные бина. А, собственно, почему этот вопрос так беспокоит? Желаете гет/сет вызовы использовать как часть бизнес логики? |
|||
|
||||
Bandit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 27.11.2007 Где: Минск Репутация: нет Всего: нет |
powerOn, если честно, то я чаще всего именно их и использую в качестве обработчиков бизнес логики... Верно ли такое использование get, set - ов?
Есть ли какие-то правила обработки в бинах или условные рекомендации? |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Для обработки бизнес логики существуют init и action-методы, а так же listener-ы. Порядок вызовов гет/сет методов нигде не обусловлен, каждая реализация JSF может их дергать когда угодно и в каком угодно количестве, что естественно может повлиять на логику вашей программы. |
|||
|
||||
Bandit |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 27.11.2007 Где: Минск Репутация: нет Всего: нет |
powerOn, можно ли глянуть пример твоего кода... Особенно что касается init методов и листнеров.
![]() |
|||
|
||||
introtel |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 25.9.2008 Репутация: нет Всего: нет |
Спасибо большое за ответ.
powerOn, а на производительность это никак не влияет? нельзя было с самой реализации организовывать кеширование, а то как видно все равно люди проверяют на "налл"-ость и только потом возрващают (так называемое lazy loading?) был один баг связанный с тем что в JS динамически добвалялся параметр...несколько раз ![]() конечно бизнес логику туда пихать не надо...но проблема была в том, что организованно что-то типа трекинг системы, и должно это все работать например именно когда вызывается определенный геттер. простая проверка кончено спасает...но все-такки ![]() |
|||
|
||||
powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Немного не понял, что именно интересует. Init - методы реализуются либо через spring, либо аннотацией @PostConstruct. Смотри документацию. ActionListeners это вообще азы JSF, типа того:
мне трудно сказать насколько сильно это влияет на производительность, не не занимался подобного рода анализом. Это сообщение отредактировал(а) powerOn - 12.10.2009, 23:08 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |