我在数据库中存储了一个“大小”,其值可以为9, M or null
。当我使用jstl
条件提取<c:when>
中的数据并比较它是否不等于null
字符串时,出现以下错误:
Cannot convert null of type class java.lang.String to class java.lang.Long
我用来比较值的代码:
<c:choose>
<c:when test="${product.productBeanSize ne 'null'}">
<td>${product.productBeanSize}</td>
</c:when>
<c:otherwise>
<td></td>
</c:otherwise>
</c:choose>
答案 0 :(得分:0)
目前尚不清楚"null"
是否作为字符串存储在数据库中,或者它只是指示一个未定值。
在后一种情况下,只需检查:
<c:if test="${not empty product.productBeanSize}">
<td>${product.productBeanSize}</td>
</c:if>
<c:if test="${empty product.productBeanSize}">
<td></td>
</c:if>
否则(但是为什么要保存“ null”字符串,只保留列不为有效值),可以尝试使用<c:catch>
来检查该值是否为数字。
示例:
<c:set var="size" value="${product.productBeanSize}" />
<c:catch var="isNumber">
<c:set var="size" value="${size * 1}" />
</c:catch>
如果isNumber
== null
,则您有一个数字值,否则为一个字符串。