Почему UISelectMany не конвертирует selectItems в список объектов? - PullRequest
0 голосов
/ 22 марта 2011

Только что найдено в документации Java EE для javax.faces.component.UISelectMany:

Получите преобразователь, используя следующий алгоритм: Если компонент имеет подключенный преобразователь, используй это.Если нет, ищите ValueExpression для значения (если есть).Выражение ValueExpression должно указывать на что-то:

  • Массив примитивов (например, int []).Найдите зарегистрированный конвертер класса
    для этого примитивного типа.
  • Массив объектов (например, Integer [] или String []).Найдите
    зарегистрированный преобразователь по классам для базового типа элемента.
  • A java.util.Collection.Не преобразовывайте значения.

Для лучшего понимания я хотел бы знать, почему значения не будут преобразованы, если ValueExpression является коллекцией.

ЕслиЯ хочу присоединить конвертер к UISelectMany. Нужно ли мне писать конвертер для коллекции или для базового типа элемента?

1 Ответ

1 голос
/ 22 марта 2011

Поскольку EL не знает / не может знать о типе общего списка, потому что он потерян во время выполнения.Все, что он знает, это то, что это коллекция что-то .Элементы будут рассматриваться как String по умолчанию.Вам нужно написать конвертер для общего типа списка, а не для коллекции.См. Также этот связанный ответ .

Чтобы узнать больше о стирании типов универсальных шаблонов Java, ознакомьтесь с учебным пособием generics .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...