1. 问题描述
以下两个表达式一直判断失效:
<c:if test="${homework.status == '0'}">
已提交作业
</c:if>
<c:if test="${homework.status eq '0'}">
已提交作业
</c:if>
2. 错误原因
错误排查:用 *${homework.status}* 在页面上打印了一下, 打印结果为:*0* 。证明传参成功,也没有多余的空格。
以前一直这样写也没错,后来看了一下homework.status,homework.status我使用的char来存储,查了一下资料果然是char的问题,char类型的数据不能用上述的EL表达式。
3. 错误解决
char 类型需要用 字符的ASCII 码去比较,修改后如下所示:
<c:if test="${homework.status == '48'}">
已提交作业
</c:if>
常用的ASCII码: 0-9 :48-57 ; A-Z : 65 - 90 ; a-z : 97-122。