2012-03-26 8 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}"/> 

EDIT: Если вопрос «Почему происходит эта ошибка, когда Facelets и Expression Language документы говорят, что это допустимый синтаксис? " то у меня нет этого ответа, и я удалю этот ответ.

0

Вы можете использовать один из следующих синтаксисов.

#{ipRange.status lt 2} 

или

#{ipRange.status &lt; 2} 

Если вы используете «<» характер внутри JSF атрибута XML-анализатор дает эту ошибку, когда он пытается разобрать вашу страницу Xhtml. Просто вы можете избежать этого символа, заменив его на «& lt;» или вы можете использовать синтаксис, который JSF вводит для использования в таких случаях, что «lt», как указано выше. (lt), Меньше чем.)