0

在我的用例中,我有一个(Primefaces)selectOneRadio。这是在 ui:repeat 中。selectOneRadio 的值显示得很好。我希望每个 selectOneRadio 都有一个有用的默认值,具体取决于迭代实体。这也很好,选择了默认值。但是使用我的方法,我无法设置 selectOneRadio 的值,因为出现了异常:

javax.el.PropertyNotWritableException: [...] value="#{orderBean.getProductPriceId(product)}": Illegal Syntax for Set Operation

如何根据迭代实体在 ui:repeat 中设置 selectiOneRadioButton-value?

订单豆:

public class OrderBean {
    private String productPriceId; // + getter and setter
    public String getProductPriceId(final Product product) {
        return product == null ? "" : product.getPricesAsList().get(0).getId().toString();
    }
}

xhtml:

<ui:repeat var="product" value="...">
        <p:selectOneRadio value="#{orderBean.getProductPriceId(product)}">
            ...
        </p:selectOneRadio>
</ui:repeat>
4

1 回答 1

4

这确实没有意义。您需要确保模型与视图匹配,而不需要任何额外的业务逻辑。

只需使用

<p:selectOneRadio value="#{product.priceId}">

并给默认项目一个值null而不是,""以便它匹配。

于 2013-04-10T20:28:41.537 回答