这个类型的地图支持了几个h:selectManyCheckbox
。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表达式的类型,在我的情况下导致Object。但是,只有当类型首先与Collection
相关时,才会尊重属性collectionType
。
我使用Mojarra 2.1.0,但即使是更高版本也没有更改相关的源代码。
总结:
List
仍然存在的正确期望
List
?提前多多感谢。
此致
丹尼尔