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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Jsf selectOne : validation problem, Значение не является правильной опцией. 
:(
    Опции темы
v2v
Дата 10.5.2008, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



Имеется jsf форма, но форме выпадающий список h:selectOneMenu . 
Список должен состоять из элементов моего класса AA.
Список составляю из элементов класса javax.faces.model.SelectItem (с помощью f:selectItems), в конструктор которого и передаю экземпляры класса АА.  
Ещё написал дополнительный конвертор из AA в String и Наоборот.

Итак страничка выглядит следующим образом
Код

<h:selectOneMenu id="aa_id" required="true"  value="#{manager.aa}"  converter="aaConverter">
            <f:selectItems value="#{manager.aa_list}"/>
        </h:selectOneMenu> 
// manager.aa - тип АА
// manager.aa_list - тип List<SelectItem(AA)>

при сабмите формы появляется сообщение 
"aa_id" Значение не является правильной опцией.

Насколько я понял, это значит что тип того что я выбрал не совпадает с типом selectOneMenu value.
Как такое поправить?

Это сообщение отредактировал(а) v2v - 10.5.2008, 14:27


--------------------
PM   Вверх
Maksym
Дата 10.5.2008, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



v2v
А как выглядит твой конвертер? Я когда-то поднимал похожую тему, но так ничего и не добился, заворкэраундил как-то и дальше пошел.
PM MAIL   Вверх
v2v
Дата 10.5.2008, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



аналогичный твоему. причём всё возвращает как я написал - правильно.
Код

public class SimpleConverter implements Converter {

    public AA getAsObject(FacesContext arg0, UIComponent arg1, String arg2)
            throws ConverterException {
// AA aa <- arg2
        return aa;
    }

    public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2)
            throws ConverterException {
// String s <- arg2
        return s;
    }
}


я так подозреваю, в твоём случае конвертор не использовался, ибо ты задаёшь конкретня: что отображать на экран(срока), а что есть значение выбраной строки (объект).
Код

 <f:selectItem itemLabel="1" itemValue="1"  />   

а у меня всё это достаётся из value= ...

Это сообщение отредактировал(а) v2v - 10.5.2008, 15:46


--------------------
PM   Вверх
Maksym
Дата 10.5.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



v2v
Это у меня упрощенный пример был. В реальности использовался f:selectItems.
Ты в свой конвертер точки ставил и смотрел когда в него управление попадает?
PM MAIL   Вверх
v2v
Дата 10.5.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



Цитата(Maksym @  10.5.2008,  15:57 Найти цитируемый пост)

Ты в свой конвертер точки ставил и смотрел когда в него управление попадает? 

функция getAsString вызывается, когда запрашиваю страницу.
функция getAsObject вызывается, когда "сабмичу" страницу.

Цитата(v2v @  10.5.2008,  14:26 Найти цитируемый пост)

"aa_id" Значение не является правильной опцией.

есть какие то идеи поповоду этого сообщения?


--------------------
PM   Вверх
ivg
Дата 10.5.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



А конвертор aaConverter зарегистрирован в faces-config.xml?
Покажите полный листинг класса AA(equals() и toString()?).
У меня была аналогичная проблема. Причина была в том что на форме имелся некий элемент с immediate="true", в коде action или actionListener которого список SelectItems (в вашем случае manager.aa_list - тип List<SelectItem(AA)) перестраивался. Проверьте этот момент.
manager bean scope?
PM MAIL   Вверх
v2v
Дата 10.5.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

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



блин!
equal() !!
я его не переопределил ((.
спасибо


--------------------
PM   Вверх
ivg
Дата 10.5.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(v2v @  10.5.2008,  19:02 Найти цитируемый пост)
есть какие то идеи поповоду этого сообщения?

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

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

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


 




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


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

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