我正在尝试比较JSF中的两个不同对象。 一个字符串和一个整数,它不起作用......
// myVar ==>整数对象
// myVar2 ==>串
<c:if test="${myVar == myVar2}">
YES!!!!!!!!
</c:if>
我尝试使用myVar.toString,但这是错误的。 那怎么办呢?
感谢的
答案 0 :(得分:4)
我正在尝试比较JSF中的两个不同对象。一个字符串和一个整数,它不起作用......
这听起来不对 - 我会查看价值观。对于bean:
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
如果A或B是字节,短,字符, 整数或长期强制A和B to Long,应用运算符
答案 1 :(得分:2)
尝试使用JSTL fmt标记:
<fmt:parseNumber type="number" var="myVar2AsNumber" value=${myVar2} />
<c:if test="${myVar == myVar2AsNumber}">
YES!!!!!!!!
</c:if>
(反过来,您可以使用fmt:formatNumber将整数格式化为字符串并与其他字符串进行比较)。