2014-12-19 4 views
4

p:dataTable에 숫자 값이 있습니다. 값이 0보다 작 으면 값 대신 "-"기호를 삽입해야합니다.[...]과 관련된 "rendered"속성의 값은 '<'문자를 포함하면 안됩니다.

c:if을 사용해 보았는데 작동하지 않습니다. 나는 읽고 있었고 사람들은 rendered 플래그를 제안했다.

코드는 다음과 같습니다 나는 c:if를 사용하는 경우 테이블 데이터없이 나타납니다

The value of attribute "rendered" associated with an element type "h:outputText" must not contain the '<' character

:

<c:if test="#{valor.valor > 0}"> 
    <h:outputText value="#{valor.valor}" /> 
    <c:otherwise> 
     <h:outputText value="-" /> 
    </c:otherwise> 
</c:if> 

을 어떻게 할 수

<p:column headerText="Valor"> 
    <h:outputText rendered="${valor.valor > 0}" value="${valor.valor}" /> 
    <h:outputText rendered="${valor.valor <= 0}" value="${valorMB.noDato}" /> 
</p:column> 

서버가 날이 오류를 줄 내 문제를 해결 하시겠습니까?

+0

렌더링 = "# {valor.valor에서 #을 사용해야> 0} ". 속성 valor는 int 여야합니다. valor <= 0의 h : outputText 값은 표시하려는 - 문자 여야합니다. –

답변

2

xml 내부 문자열에 "<"문자가 잘못 입력되어이 오류가 발생합니다. Expression Language 방식을 사용해야합니다. 당신의 situtation에서

당신은 의미 le보다 작거나 동일한 의미 사용해야합니다.

변경 "${valor.valor <= 0}" 대신 기호를 기반으로 EL 사업자의 "${valor.valor le 0}"

9

사용 키워드 기반 EL의 연산자 :

<h:outputText rendered="#{valor.valor gt 0}" value="#{valor.valor}" /> <!-- valor.valor > 0 --> 
<h:outputText rendered="#{valor.valor le 0}" value="-" /> <!-- valor.valor <= 0 --> 
  • lt (이하)
  • le (이상)
  • gt (작거나 같음)
  • ge (보다 크거나 같음) (동등)
  • ne (동일하지 않음)
  • eq
  • and
  • or
+2

참고 : EL은 대소 문자를 구분합니다. –