| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Jsf selectOne : validation problem |
| Автор: v2v 10.5.2008, 14:26 | ||
| Имеется jsf форма, но форме выпадающий список h:selectOneMenu . Список должен состоять из элементов моего класса AA. Список составляю из элементов класса javax.faces.model.SelectItem (с помощью f:selectItems), в конструктор которого и передаю экземпляры класса АА. Ещё написал дополнительный конвертор из AA в String и Наоборот. Итак страничка выглядит следующим образом
при сабмите формы появляется сообщение "aa_id" Значение не является правильной опцией. Насколько я понял, это значит что тип того что я выбрал не совпадает с типом selectOneMenu value. Как такое поправить? |
| Автор: Maksym 10.5.2008, 15:33 |
| v2v А как выглядит твой конвертер? Я когда-то поднимал http://forum.vingrad.ru/index.php?showtopic=141445&view=findpost&p=1066489, но так ничего и не добился, заворкэраундил как-то и дальше пошел. |
| Автор: v2v 10.5.2008, 15:46 | ||||
аналогичный твоему. причём всё возвращает как я написал - правильно.
я так подозреваю, в твоём случае конвертор не использовался, ибо ты задаёшь конкретня: что отображать на экран(срока), а что есть значение выбраной строки (объект).
а у меня всё это достаётся из value= ... |
| Автор: Maksym 10.5.2008, 15:57 |
| v2v Это у меня упрощенный пример был. В реальности использовался f:selectItems. Ты в свой конвертер точки ставил и смотрел когда в него управление попадает? |
| Автор: ivg 10.5.2008, 16:06 |
| А конвертор aaConverter зарегистрирован в faces-config.xml? Покажите полный листинг класса AA(equals() и toString()?). У меня была аналогичная проблема. Причина была в том что на форме имелся некий элемент с immediate="true", в коде action или actionListener которого список SelectItems (в вашем случае manager.aa_list - тип List<SelectItem(AA)) перестраивался. Проверьте этот момент. manager bean scope? |
| Автор: v2v 10.5.2008, 16:13 |
| блин! equal() !! я его не переопределил ((. спасибо |
| Автор: ivg 10.5.2008, 16:13 |
Код класса компонента <h:selectOneMenu ...> при "валидации" значения проверяет наличие его в списке manager.aa_list, если не находит, выдаёт это сообщение. |