Wie kann ich mithilfe der c-Tags von JSTL überprüfen, ob ein String null oder leer ist?
Sie können das empty
Schlüsselwort in a <c:if>
dafür verwenden:
<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>
Oder die <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>
Wenn Sie eine Reihe von Tags nicht bedingt rendern müssen und sie daher nur in einem Tag-Attribut überprüfen können, können Sie den bedingten EL-Operator verwenden ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Weitere Informationen zu diesen ${}
Dingen (die Ausdruckssprache , die ein von JSTL getrenntes Thema ist ) finden Sie hier .
Siehe auch:
empty
nicht,Set
wenn das alte JSTL 1.0 verwendet wird. Sie müssten auf JSTL 1.1 aktualisieren (das bereits aus dem Jahr 2003 stammt).${not empty var1}
gleichzeitig auf leer und null? Ich meine , der Test auf true ausgewertet wird , wenn und nur wennvar1
ist nicht null undvar1
ist nicht leer. Müssen Sie nichtnull
separat prüfen ?empty
gleich ne ''String
Werten entspricht diesvar ne null and var ne ''
. Darüber hinaus unterstützt es auchObject
ArrayCollection
undMap
.Um auch die leere Zeichenfolge zu überprüfen, schlage ich Folgendes vor
Es werden auch Nullen behandelt
quelle
Wenn Sie nur null oder leer markieren, können Sie hierfür die Option mit Standard verwenden:
<c:out default="var1 is empty or null." value="${var1}"/>
quelle
Dieser Code ist korrekt, aber wenn Sie anstelle von null oder einer leeren Zeichenfolge viel Leerzeichen ('') eingegeben haben, geben Sie false zurück.
Um dies zu korrigieren, verwenden Sie den regulären Ausdruck (dieser Code unten überprüft, ob die Variable null oder leer oder leer ist, genau wie org.apache.commons.lang.StringUtils.isNotBlank):
quelle
Hier ist der eine Liner.
Ternärer Operator in EL
quelle
Sie können verwenden
Alternative.
quelle
Hier ist ein Beispiel für die Überprüfung eines int und eines Strings, die Sie vom Java Controller an die JSP-Datei übergeben.
MainController.java:
importJavaToJSPExamples.jsp
quelle
quelle