从Servlet返回到JSP中是一个集体:List<Map<String, Object>> list = results.getData();
那么它的每一个对象就是一个map。
我在取其中的值进行比较时,出现了问题。
<c:forEach items="${orderList}" var="order">
<span class="${order.status==2?'kx_btnwait':'kx_btnwait'}">${order.status}</span>
</c:forEach>
问题报错,原来是Servlet在返回之前,先把2转换成了对应的汉字,比较低级...
变换一下:
<c:forEach items="${orderList}" var="order">
<span class="${order.status=='对应的汉字'?'kx_btnwait':'kx_btnwait'}">${order.status}</span>
</c:forEach>
这就没问题了。
那么如果Servlet就直接返回2,会怎么样呢?
<c:forEach items="${orderList}" var="order">
<span class="${order.status==2?'kx_btnwait':'kx_btnwait'}">${order.status}</span>
</c:forEach>
这样是没有问题的。给2加单引号呢?
<c:forEach items="${orderList}" var="order">
<span class="${order.status==‘2’?'kx_btnwait':'kx_btnwait'}">${order.status}</span>
</c:forEach>
还是没问题。作为弱类型的语言,el对数字类型的处理还是比较灵活的,但是对于字符类型,就不要那么随意了,注意一下。