2009-06-08 4 views
3

JSF에서 두 개의 다른 객체를 비교하려고합니다. String와 정수, 꾸르의 그것은 ... 작동하지 않습니다다른 객체 유형을 가진 JSF <c:if>

// myVar에 ==> 정수
// myVar2 ==> 문자열

<c:if test="${myVar == myVar2}"> 
    YES!!!!!!!! 
</c:if> 

내가 함께 시도 객체 myVar.toString하지만 잘못된 것입니다. 그렇게하는 방법?

감사의

답변

4

JSF에서 두 개의 다른 객체를 비교하려고합니다. 법칙의 문자열과 정수는 작동하지 않습니다 ...

그건 맞지 않습니다. 나는 값을 검사 할 것입니다. 콩의 경우 :

public class CoercedBean { 

    public int getValueAsInt() { 
    return 123; 
    } 

    public String getValueAsString() { 
    return "123"; 
    } 

} 

... 이러한 예 표현식은 사실로 평가 :

A {==,!=,eq,ne} B 
:

${coercedBean.valueAsInt == coercedBean.valueAsString} 
<h:outputText style="color: blue" 
    value="#{coercedBean.valueAsInt eq coercedBean.valueAsString}" /> 

는 JSP 2.1 (EL) 스펙 평가 평등의 말한다

A 또는 B가 Byte, Short, Character, 정수 또는 Long 인 경우 A와 B 모두 to Long, 신청 연산자

2

JSTL의 FMT 태그를 사용해보십시오 :

<fmt:parseNumber type="number" var="myVar2AsNumber" value=${myVar2} /> 


<c:if test="${myVar == myVar2AsNumber}"> 
     YES!!!!!!!! 
</c:if> 

(또는 역으로, 당신이 사용할 수 FMT : formatNumber는 String로서 정수를 포맷하고 다른 문자열로 비교하기 위해).

관련 문제