如何检查int变量是否不等于jstl中的String?

时间:2019-02-01 07:19:43

标签: java jstl

我在数据库中存储了一个“大小”,其值可以为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> 

1 个答案:

答案 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,则您有一个数字值,否则为一个字符串。