2009-06-08 8 views
3

JSFの2つの異なるオブジェクトを比較しようとしています。 私がしようと、それは動作しませんクールのA列と整数、...異なるオブジェクトタイプのJSF <c:if>

// myVarを==>整数オブジェクト
// myVar2 ==>文字列

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

myVar.toStringが間違っています。 それはどうやって?

感謝の

答えて

4

JSFの2つの異なるオブジェクトを比較しようとしています。それはうまくいきません...

これは正しいとは言えません - 値をチェックします。 Beanの場合:

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の両方を強制的に強制する場合 からロング、適用オペレータ

2

JSTLのfmtはタグを使用してみてください:

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


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

(あるいは、逆に、あなたが使用することができFMT:FormatNumber関数は、文字列として整数をフォーマットし、他の文字列と比較します)。

関連する問題