【问题标题】:icefaces 3.3 rendered attribute does not work correcticefaces 3.3 渲染属性无法正常工作
【发布时间】:2014-01-03 13:03:48
【问题描述】:

我正在使用渲染的属性在我的数据表中显示“x”。 x 每次都会打印,即使它的值为 false。

                <ace:column id="aktiviert" headerText="Aktiviert" sortBy="#{user.aktiviert}" filterBy="#{user.aktiviert}">
                    <ace:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="x" rendered="#{user.aktiviert}"/>
                        </f:facet>
                        <f:facet name="input">
                            <ace:checkboxButton id="aktiviertInput" value="#{user.aktiviert}" />                    
                        </f:facet>
                    </ace:cellEditor>      
                </ace:column>  

如果我之前再放一个 outputText,它就可以了!

                        <f:facet name="output">
                            <h:outputText value="" rendered="#{user.aktiviert}"/>
                            <h:outputText value="x" rendered="#{user.aktiviert}"/>
                        </f:facet>

现在只有在后端的布尔值为真时才会打印 x。在第一次访问时,我的渲染属性总是像值为 true 一样工作。

是否存在已知错误?这是从 icefaces 3.2 到 3.3 的更新。

这是我对实体的吸气剂。

@Column(name = "AKTIVIERT")
public Boolean getAktiviert() {
    System.out.println("Aktiviert : " + aktiviert);
    if (aktiviert == null) {
        return false;
    } else {
        return aktiviert;
    }
}

【问题讨论】:

    标签: java jsf-2 icefaces jsf-2.2 icefaces-3


    【解决方案1】:

    如果您通过 ajax 更改属性,则需要在 ace:dataTable 上使用“alwaysExecuteContents”。我做了一个快速测试,发现一旦将此属性设置为“true”,构面上的渲染标志就会正确更新。

    【讨论】:

    • 谢谢。但我没有用 ajax 改变任何值。在 jsf 站点的初始加载时渲染出错。 alwaysExecuteContents 不起作用。我的其他列打印正确。仅 h:outputtext 上的渲染属性在第一次访问时不起作用。
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 2018-07-30
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多