h:selectManyCheckbox не учитывает атрибут "collectionType"

Несколько h:selectManyCheckboxs поддерживаются этой картой типа: 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?
  • Я это действительно ошибка? Если так, это было исправлено в более поздних версиях?
  • Есть ли обходной путь?

Заранее большое спасибо.

С Уважением,

Даниил

0 ответов

Другие вопросы по тегам