Jak mogę sprawdzić, czy ciąg znaków jest pusty lub pusty przy użyciu znaczników c JSTL?
Możesz użyć empty
słowa kluczowego w <c:if>
tym celu:
<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>
Lub <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>
Lub jeśli nie musisz warunkowo renderować wiązki tagów, a zatem możesz to sprawdzić tylko w atrybucie tagu, możesz użyć operatora warunkowego EL ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Aby dowiedzieć się więcej o tych ${}
rzeczach ( język wyrażeń , który jest odrębny od JSTL ), sprawdź tutaj .
Zobacz też:
empty
nie działa,Set
gdy używa się starożytnego JSTL 1.0. Musisz uaktualnić do JSTL 1.1 (który jest już od 2003 roku).${not empty var1}
sprawdza jednocześnie puste i zerowe? Mam na myśli, że test jest oceniany jako prawdziwy tylko wtedy, gdy nievar1
jest pusty i nie jest pusty. Czy nie ma potrzeby osobnego sprawdzania ?var1
null
empty
równoznaczny z ne ''String
wartości jest to równoważne zvar ne null and var ne ''
. Ponadto obsługuje równieżObject
, tablicęCollection
iMap
.aby również sprawdzić pusty ciąg, sugeruję następujące
Obsługuje również wartości zerowe
źródło
jeśli zaznaczysz tylko pustą lub pustą, możesz użyć domyślnej opcji:
<c:out default="var1 is empty or null." value="${var1}"/>
źródło
Ten kod jest poprawny, ale jeśli wprowadziłeś dużo spacji ('') zamiast pustego lub pustego łańcucha, zwróć false.
Aby to skorygować, użyj wyrażenia regularnego (poniższy kod sprawdź, czy zmienna jest pusta, pusta lub pusta tak samo jak org.apache.commons.lang.StringUtils.isNotBlank):
źródło
Oto jeden liniowiec.
Trójskładnikowy operator wewnątrz EL
źródło
Możesz użyć
alternatywnie.
źródło
Oto przykład sprawdzania poprawności wartości int i ciągu przekazywanych z kontrolera Java do pliku JSP.
MainController.java:
importJavaToJSPExamples.jsp
źródło
źródło