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



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

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

如何在ui:repeat中设置selectiOneRadioButton-value取决于迭代实体?

OrderBean:

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>

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

只使用

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

并将默认项的值为null而不是"",以使其匹配

相关内容

  • 没有找到相关文章

最新更新