2009-06-08 2 views
3

Я пытаюсь сравнить два разных объекта в JSF. Строка и Integer, из Кур он не работает ...JSF <c:if> с другим типом объекта

// MYVAR ==> Integer объект
// myVar2 ==> Строка

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

Стараюсь с myVar.toString, но это неправильно. Итак, как это сделать?

Thank в

ответ

4

Я пытаюсь сравнить два разных объекта в JSF. A String и Integer, из курса это не работает ...

Это не звучит правильно - я бы проверял значения. Для фасоли:

public class CoercedBean { 

    public int getValueAsInt() { 
    return 123; 
    } 

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

} 

... эти примеры вычисления выражений истинной:

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

2,1 (EL) спецификации JSP говорит оценки равенства:

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

Если A или B - это байт, короткий, символ, Целое или длинное принуждение как A, так и B к длинному, применяется оператор

2

Попробуйте использовать теги FMT JSTL:

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


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

(или, наоборот, вы могли бы использовать FMT: FormatNumber для форматирования Integer как строку и сравнить с другой строки).

Смежные вопросы