2012-03-26 59 views
1

這是我的代碼:A4J:COMMANDBUTTON不允許 「<」 在渲染

<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. 

任何想法,爲什麼?幫助將非常感激。

在此先感謝

回答

2

更換

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

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

編輯:如果該問題是:「爲什麼會有這樣的錯誤發生時的Facelets和表達語言的文檔說,這是一個有效的語法?「那麼我沒有這個答案,我會刪除這個答案。

0

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

#{ipRange.status lt 2} 

#{ipRange.status &lt; 2} 

如果使用JSF裏面的 「<」 人物屬性,當它試圖解析您的XHTML頁面的XML解析器給出了這樣的錯誤。 只需將其替換爲「& lt;」即可,或者您可以使用JSF在這種情況下引入的語法,即上述的「lt」。 (lt代表小於。)