![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
beolnix |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.3.2010 Репутация: нет Всего: нет |
у rich:extendedDataTable есть классный атрибут selection. Согласно документации и примерам, данным атрибутом мапится проперти типа org.richfaces.model.selection.SimpleSelection, которая обновляется каждый раз когда список выделенных элементов в таблице изменился. Сам SimpleSelection, если я правильно понял, есть ни что иное как Map порядковый_номер_выделенной_строчки:порядковый_номер_элемента_в_коллекции_ClientsListAction.getAllClients() .
другими словами, если есть таблица вида:
и бин вида:
то по клику на любой из строчек таблицы в selection должен появится один объект SimpleRowKey (или больше одного если selectionMode="multi" ). Проблема в том, что в моем случае число объектов в selection всегда равно 0. т.е. если посмотреть на консоль appServer'а в который деплоится приложение с вышеописанной таблицей и бином, то после выделения какой либо строчки из таблицы там будет:
Получается что обработчик события onselectionchange отрабатывает корректно, но сам объект SimpleSelection не содержит в себе ни одной выделенной строчки. я перепробовал перекопипастил все примеры которые смог найти в интернетах, во всех одна и та же ошибка. Но как-то http://livedemo.exadel.com/richfaces-demo/...edDataTable.jsf он же работает на демосцене richfaces. Я подозреваю что у меня где-то что-то не так настроено. Cам проект представляет из себя ear app на базе seam. версии используемых фреймворков: seam 2.2.0.GA richfaces 3.3.3.CR1 jsf-api 1.2_12 servlet-api 2.5.0.GA jsf-facelets 1.1.15.B1 буду благодарен любой помощи или любому намеку, относительно того что стоит ковырять/перенастроить/изучить. Это сообщение отредактировал(а) beolnix - 2.3.2010, 17:46 |
||||||
|
|||||||
beolnix |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 2.3.2010 Репутация: нет Всего: нет |
проблема решена. На всякий случай, если кто-то пойдет по тем же граблям что и я:
в rich:extendedDataModel нужно подсовывать особую коллекцию. в примере с демосцены richfaces она создается след. образом:
от себя добавлю только пару фактов: 1) вышеприведенный код не заработал пока я е добавил перед инструкцией return dataModel; инструкцию dataModel.setRowIndex(-1); 2) следует быть аккуратным при выборе scope для session бина. В книге seam in action(легко гуглится англоязычный вариант 2009 года) есть пара ценных рекомендаций на этот счет. на всякий случай еще оставлю ссылку на код бина который используется на демосцене richfaces: http://anonsvn.jboss.org/repos/richfaces/b...dTableBean.java |
|||
|
||||
dzhagr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 17.8.2010 Репутация: нет Всего: нет |
Beolnix, здаствуйте.
У меня схожая проблема: всегда пустой selection в методе takeSelection(), однако, я использую scrollableDataTable. Единственный вариант, при котором этот объект наполняется - использовать в качестве скоупа для бина - session вместо request. Подскажите, плиз, какой скоуп жизни для своего бина задавали Вы. Я недавно работаю с richfaces и не могу пока разобраться - является ли сабмит аякс формы тем реквестом, по которому пересоздается бин, скоуп которого задан как request. Можете ответить на этот вопрос? Спасибо |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |