Jsf 如何在ui中设置SelectionRadioButton值:根据迭代实体重复?

Jsf 如何在ui中设置SelectionRadioButton值:根据迭代实体重复?,jsf,setter,repeat,selectoneradio,Jsf,Setter,Repeat,Selectoneradio,在我的用例中,我有一个(Primefaces)选择器Radio。这是在ui中:重复。selectOneRadio的值显示良好。我希望每个selectOneRadio都有一个有用的默认值,具体取决于迭代的实体。这也可以正常工作,选择了默认值。但在我的方法中,我无法设置selectOneRadio的值,因为出现了一个异常: javax.el.PropertyNotWritableException: [...] value="#{orderBean.getProductPriceId(product

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

javax.el.PropertyNotWritableException: [...] value="#{orderBean.getProductPriceId(product)}": Illegal Syntax for Set Operation
如何在ui中设置SelectionRadioButton值:根据迭代实体重复?

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
而不是
,以使其匹配。

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

只用

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


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

我没有想到的简单想法解决了我的问题。谢谢我没有想到的简单想法解决了我的问题。谢谢