【问题标题】:How do I set a selectiOneRadioButton-value inside an ui:repeat depending on the iterated entity?如何根据迭代实体在 ui:repeat 中设置 selectiOneRadioButton 值?
【发布时间】:2013-04-10 20:19:10
【问题描述】:

在我的用例中,我有一个(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>

【问题讨论】:

    标签: jsf setter repeat selectoneradio


    【解决方案1】:

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

    随便用

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

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

    【讨论】:

    • 我没有想到的简单想法解决了我的问题。谢谢!
    猜你喜欢
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2012-01-11
    • 2018-04-14
    • 2013-10-09
    相关资源
    最近更新 更多