0

私のユースケースでは、(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>
4

1 に答える 1

4

これはまったく意味がありません。追加のビジネス ロジックを必要とせずに、モデルがビューと一致することを確認する必要があります。

使うだけ

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

一致するように、デフォルト項目にnull代わりに の値を与えます""

于 2013-04-10T20:28:41.537 に答える