1

这是我的代码:

<a4j:outputPanel ajaxRendered="true">
    <h:form>
            <rich:dataTable id="iprangesList"
                value="#{ipRangeOverviewAction_publicIpRangeList}"
                var="iprange" rendered="#{ipRangeOverviewAction_publicIpRangeList.size>0}" 
                style="width: 100%"
                rows="20"
                onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
                onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'">
                    <f:facet name="header">
                        <h:outputText value="#{ipRangeOverviewAction_publicIpRangeList.size} record(s) found."/>
                    </f:facet>


                <rich:column>
                    <f:facet name="header">Information</f:facet>
                        <h:outputText value="#{iprange.info}"/>
                </rich:column>
                <rich:column>
                    <f:facet name="header">Edit</f:facet>

                    <a4j:commandButton action="#{ipRangeOverviewAction.redirectStringForEdit(iprange)}"
                                       value="edit"
                                       rendered="#{ipRange.status < 2}"/>                   

                </rich:column>

                <f:facet name="footer">
                <rich:datascroller renderIfSinglePage="false" maxPages="5"/>
                </f:facet>      
            </rich:dataTable>

            </h:form>
            </a4j:outputPanel>

这是我得到的错误:

Error Traced[line: 114] The value of attribute "rendered" associated with an element type "a4j:commandButton" must not contain the '<' character.

知道为什么吗?帮助将不胜感激。

提前致谢

4

2 回答 2

2

代替

rendered="#{ipRange.status < 2}"/>

rendered="#{ipRange.status lt 2}"/>

编辑:如果问题是“为什么当 Facelets 和表达式语言文档说它是有效语法时会发生这个错误?” 那么我没有这个答案,我会删除这个答案。

于 2012-03-26T09:20:32.843 回答
0

您可以使用以下语法之一。

#{ipRange.status lt 2}

或者

#{ipRange.status &lt; 2}

如果您在 JSF 属性中使用“ < ”字符,则 xml 解析器在尝试解析您的 xhtml 页面时会给出此错误。简单地说,您可以通过将其替换为“ < ”来转义该字符,或者您可以使用 JSF 在这种情况下引入的语法,即上面的“ lt ”。(lt代表小于。)

于 2012-03-29T13:50:49.837 回答