我有以下代码:
<ui:repeat var="_shipment"
value="#{_order.orderShipmentList}">
<h:selectOneMenu value="#{_shipment.shipmentMethodCode.id}">
<f:selectItems id="selectShipList"
value="#{consoleContext.shipmentMethods}" />
</h:selectOneMenu>
</ui:repeat>
在f:selectItems值属性中我想添加#{_ shipment.shipmentMethodCode.id} - #{consoleContext.shipmentMethods}
所以它会读1 - 标准运输
但是我收到一个错误: 期望组件类型为javax.faces.SelectOne(j_id58)的子组件类型为UISelectItem / UISelectItems。找到了java.lang.String。
答案 0 :(得分:1)
value
属性应指向Javabeans或SelectItem
对象的集合,而不是字符串。
如果你不能/不能在Javabean或SelectItem
方面改变它,那么你需要改为使用itemLabel
属性。
<f:selectItems id="selectShipList" value="#{consoleContext.shipmentMethods}" var="shipmentMethod"
itemValue="#{shipmentMethod.id}" itemLabel="#{shipmentMethod.id} - #{shipmentMethod.name}" />