Как я могу проверить, является ли строка пустой или пустой, используя теги c JSTL?
Вы можете использовать empty
ключевое слово в <c:if>
для этого:
<c:if test="${empty var1}">
var1 is empty or null.
</c:if>
<c:if test="${not empty var1}">
var1 is NOT empty or null.
</c:if>
Или <c:choose>
:
<c:choose>
<c:when test="${empty var1}">
var1 is empty or null.
</c:when>
<c:otherwise>
var1 is NOT empty or null.
</c:otherwise>
</c:choose>
Или, если вам не нужно условно визуализировать группу тегов и, таким образом, вы можете проверить это только внутри атрибута тега, тогда вы можете использовать условный оператор EL ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Чтобы узнать больше об этих ${}
вещах (язык выражений , который является отдельной темой от JSTL ), проверьте здесь .
Смотрите также:
empty
не работаетSet
при использовании древнего JSTL 1.0. Вам нужно будет обновить до JSTL 1.1 (который уже с 2003 года).${not empty var1}
одновременно и пустое, и нулевое? Я имею в виду тест оценивается истинно , если и только еслиvar1
это не нуль иvar1
является не пустой. Нет необходимости проверятьnull
отдельно?empty
equvilant к пе ''String
значений это эквивалентноvar ne null and var ne ''
. Далее он также поддерживаетObject
, массивCollection
иMap
.чтобы также проверить пустую строку, я предлагаю следующее
Он также обрабатывает нули
источник
если вы отметите только null или empty, тогда вы можете использовать опцию with default для этого:
<c:out default="var1 is empty or null." value="${var1}"/>
источник
Этот код верен, но если вы ввели много пробела ('') вместо пустой или пустой строки, верните false.
Чтобы исправить это, используйте регулярное выражение (этот код ниже проверяет, является ли переменная нулевой, пустой или пустой, как org.apache.commons.lang.StringUtils.isNotBlank):
источник
Вот один лайнер.
Тернарный оператор внутри ЭЛ
источник
Ты можешь использовать
в качестве альтернативы.
источник
Вот пример того, как проверить int и String, которые вы передаете из контроллера Java в файл JSP.
MainController.java:
importJavaToJSPExamples.jsp
источник
источник