Как проверить, что переменная int не равна String в jstl? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть «размер», хранящийся в базе данных, его значение может быть 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 голосов
/ 06 февраля 2019

Непонятно, хранится ли "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, то у вас есть числовое значение, в противном случае строковое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...