it-swarm.com.de

Werten Sie leere oder leere JSTL-c-Tags aus

Wie kann ich mithilfe der String -Tags von c überprüfen, ob ein JSTL null oder leer ist?

Ich habe eine Variable mit dem Namen var1 und kann sie anzeigen, möchte aber einen Vergleicher hinzufügen, um sie zu validieren.

<c:out value="${var1}" />

Ich möchte überprüfen, ob der Wert null oder leer ist (meine Werte sind Zeichenfolgen).

374
user338381

Wie kann ich mithilfe der c-Tags von JSTL überprüfen, ob ein String null oder leer ist?

Sie können das Schlüsselwort empty in einem <c:if> 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 der <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 _${condition? valueIfTrue : valueIfFalse}_ verwenden:

_<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
_

Um mehr über diese _${}_ Dinge zu erfahren (die Ausdruckssprache , die ein separates Thema von JSTL ist), hier überprüfen .

Siehe auch:

726
BalusC

um auch eine leere Zeichenfolge zu überprüfen, empfehle ich Folgendes

<%@ taglib prefix="fn" uri="http://Java.Sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>

<c:if test="${empty fn:trim(var1)}">

</c:if>

Es behandelt auch Nullen

24
andro83

Hier ist der Einzeiler.

Ternärer Operator innerhalb von EL

${empty value?'value is empty or null':'value is NOT empty or null'}
6
Sorter

wenn Sie nur null oder leer markieren, können Sie hierfür die Option with default verwenden: <c:out default="var1 is empty or null." value="${var1}"/>

6
Ankit Agarwal

Dieser Code ist korrekt, aber wenn Sie anstelle von null oder einer leeren Zeichenfolge viel Leerzeichen ('') eingegeben haben, wird false zurückgegeben.

Um dies zu korrigieren, verwenden Sie den regulären Ausdruck (überprüfen Sie in diesem Code, ob die Variable null oder leer oder leer ist, genauso wie org.Apache.commons.lang.StringUtils.isNotBlank):

<%@ taglib uri="http://Java.Sun.com/jsp/jstl/functions" prefix="fn" %>
        <c:if test="${not empty description}">
            <c:set var="description" value="${fn:replace(description, ' ', '')}" />
            <c:if test="${not empty description}">
                  The description is not blank.
            </c:if>
        </c:if>
5

Sie können verwenden

    ${var == null}

alternative.

3