![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| archez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Помогите с проблемой, плз.
Необходимо из JSF страницы *.xhtml присвоить значение параметру бина. копал в сторону <c:set ... и <jsp:setProperty но не срабатывает. |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
не совсем понятна задача.
значения присваиваются свойствам бинов через формы или с использованием action-ов (от конкретной задачи зависит). |
|||
|
||||
| archez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Через формы или с использованием action-ов значения свойствам присваиваются при взаимодействии с пользователем. В моем случае нужно присвоить значение свойству бина при загрузке страницы, т.е. до того как пользователь успел что либо на странице кликнуть.
PS: И еще такой вопрос: каким образом можно из jsf страницы (*.xhtml - использую facelets), динамически создавать бины в контексте сессии, т.е. не определяя их в faces-config.xml |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
Что за значение и откуда это оно берется? Присваивайте его в коде бина, во время инициализации. Со страницы никак. Да и не должны подобные операции выполнятся на странице. Но это можно сделать в бине. В простейшем случае достаточно иметь один сессионный бин у которого map со значениями. В map класть все что нужно - на странице обратиться к этим значения можно будет без проблем. Если нужно именно бин, то вероятно нужно смотреть в сторону классов ApplicationAssociate и BeanManager. |
|||
|
||||
| archez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
если чуть подробнее, то идея вот какая - есть сессионный бин - он один для всех страниц, своего рода универсальное хранилище, для определенности PageBean. В зависимости от того с какой стринцы к нему идет обращение этот бин будет обращаться к тому или иному классу. Эти классы реализуют логику конкретной страницы. Обращение к ним идет через определенный интерфейс, который каждый из этих классов реализует. Но для того, чтобы обратиться к определенному классу нужно либо из *.xhtml в PageBean передать ссылку на этот класс (в идеале - динамически создать бин в контексте сессии), либо какое либо уникально значение - тогда экземпляр нужного класса я смогу создать в бине либо, если он уже создан - извлечь из мапа.
|
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 28 Всего: 159 |
А может инвертировать взаимодействие? Каждая страница обращается к нужному классу (бину нужного класса) которые в свою очередь имеет доступ к PageBean? Т.е. сейчас: Page -> Page Bean -> Logic Bean. А если: Page -> Logic Bean -> Page Bean. С другой стороны получится необходимость создавать дополнительный бин на каждую страницу и ставить его в цепочке взаимодействия между страницей и PageBean. [Page -> Additional Bean -> Page Bean -> Logic Bean]. Additional Bean смог бы идентифицировать страницу. Но честно говоря мне такой подход не очень нравится. |
|||
|
||||
| archez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.6.2009 Репутация: нет Всего: нет |
Да, пожалуй, так будет лучше. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |