h:selectManyCheckbox не учитывает атрибут "collectionType"
Несколько h:selectManyCheckbox
s поддерживаются этой картой типа: Map<Type, ArrayList<MyItem>>
,
Фрагмент xhtml выглядит следующим образом:
<h:selectManyCheckbox
value="#{backingBean.values['type']}"
collectionType="java.util.ArrayList"
converter="#{myCustomConverter}>
<f:selectItems .../>
</h:selectManyCheckbox>
Флажки отображаются правильно, и конвертер используется правильно в обоих направлениях.
К сожалению, когда я пытаюсь получить доступ к значениям карты после отправки страницы, карта больше не содержит списков. Вместо этого я получаю ClassCastException, потому что значения были заменены Object[]
,
Поиски в интернете, похоже, имеют ту же проблему, что и в MyFaces.
Я думаю, я разыскал проблему MenuRenderer
, Тип выражения EL определяется, что приводит к объекту в моем случае. Но только если тип связан с Collection
во-первых, атрибут collectionType
уважается.
Я использую Mojarra 2.1.0, но даже более поздние версии не изменили соответствующий исходный код.
Подводя итог:
- Есть ли у меня правильное ожидание того, что
List
должен оставатьсяList
? - Я это действительно ошибка? Если так, это было исправлено в более поздних версиях?
- Есть ли обходной путь?
Заранее большое спасибо.
С Уважением,
Даниил