我有一个"大小"存储在数据库中,其值可以9, M or null
。当我<c:when>
使用条件提取jstl
中的数据并比较它是否不等于字符串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>
目前
尚不清楚"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
则您有一个数值,否则是一个字符串值。