3

我正在尝试比较 JSF 中的两个不同对象。一个字符串和一个整数,当然它不起作用......

//myVar ==> 整数对象
//myVar2 ==> 字符串

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

我尝试使用 myVar.toString 但它是错误的。那么该怎么做呢?

谢谢

4

2 回答 2

4

我正在尝试比较 JSF 中的两个不同对象。一个字符串和一个整数,当然它不起作用......

这听起来不对 - 我会检查这些值。对于豆:

public class CoercedBean {

  public int getValueAsInt() {
    return 123;
  }

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

}

...这些示例表达式的计算结果为true

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

JSP 2.1 (EL) 规范提到了评估相等性:

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

If A or B is Byte, Short, Character, Integer, or Long coerce both A and B to Long, apply operator

于 2009-06-09T13:27:32.560 回答
2

尝试使用 JSTL fmt 标签:

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


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

(或者,反过来,您可以使用 fmt:formatNumber 将 Integer 格式化为字符串并与其他字符串进行比较)。

于 2009-06-08T19:59:17.203 回答