为什么不f:selectItems允许我添加另一个值? JBOSS / JSF

时间:2011-06-30 13:28:14

标签: java jsf el

我有以下代码:

<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。

1 个答案:

答案 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}" />