如何检查是否int变量不等于字符串中JSTL?

问题描述 投票:0回答:1

我有一个“大小”存储在数据库中的值可以是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> 
java jstl
1个回答
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>

否则,(但你为什么要救“空”的字符串,只需保留不增值的列),你可以用<c:catch>尝试检查,如果值是数字。例:

<c:set var="size" value="${product.productBeanSize}" />
<c:catch var="isNumber">
   <c:set var="size" value="${size * 1}" />
</c:catch>

如果isNumber是== null那么你有一个数值,否则字符串的一种。

© www.soinside.com 2019 - 2024. All rights reserved.