我有一个“大小”存储在数据库中的值可以是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>
如果"null"
存储为你的数据库字符串目前还不清楚,或者如果它只是表示不增值的价值。
在后一种情况下,简单地检查:
<c:if test="${not empty product.productBeanSize}">
<td>${product.productBeanSize}</td>
</c:if>
<c:if test="${empty product.productBeanSize}">
<td></td>
</c:if>
否则,(但你为什么要救“空”的字符串,只需保留不增值的列),你可以用<c:catch>
尝试检查,如果值是数字。例:
<c:set var="size" value="${product.productBeanSize}" />
<c:catch var="isNumber">
<c:set var="size" value="${size * 1}" />
</c:catch>
如果isNumber
是== null
那么你有一个数值,否则字符串的一种。