2013-11-28 12 views
7

Ich habe diese LinieVerwendung von IF-Bedingung in JSP

<td><c:out value="${row.file_name}"/></td> 

datei_name ein Spaltenname aus der Tabelle MySQL-Datenbank ist. Ich möchte überprüfen, ob Dateiname einen Wert hat, also möchte ich die IF condition verwenden, aber wie überlasse ich row.file_name? so etwas wie if(row.file_name!=null){}

UPDATE

<td><c:out value="${row.file_name}"/><br> 
<c:choose> 
    <c:when test="${row.file_name == null}"> 
     Null 
    </c:when> 
    <c:otherwise> 
     <a href="downloadFileServlet?id=${row.id}">Download</a></td> 
    </c:otherwise> 
</c:choose> 

In diesem Fall wird nur die zweite Bedingung, obwohl der datei_name ausgeführt ist leer

+0

Verwendung Script-Tag die Logik zu tun –

+0

Was möchten Sie als Ausgabe sehen zum ersten '' ? Außerdem haben Sie '' Tag für '' nicht geschlossen. Besser, das schließende Tag vollständig außerhalb des "" -Tags zu verschieben. –

+0

download, ich habe eine Tabelle..so auf alle Download kommt, und in der Zelle, die die Datei hat, gibt es den Namen der Datei mit dem Download kommt –

Antwort

6

Zunächst einmal if keine Schleife ist, ist es nur ein Statement. Sie <c:if> Tag zum Testen der Wert verwenden können:

<c:if test="${row.file_name != null}"> 
    Not Null 
</c:if> 

Und für Java if-else Anweisung, JSTL-Tag entspricht <c:choose> (Nein, es gibt keine <c:else>):

<c:choose> 
    <c:when test="${row.file_name != null}"> 
     Not Null 
    </c:when> 
    <c:otherwise> 
     Null 
    </c:otherwise> 
</c:choose> 

Beachten Sie, dass, ${row.file_name != null} Bedingung sei true nur für non-null Dateiname. Und der leere Dateiname ist nicht null. Wenn Sie für beide null und leeren Dateinamen überprüfen möchten, dann sollten Sie empty Bedingung verwenden:

<!-- If row.file_name is neither empty nor null --> 
<c:when test="${!empty row.file_name}"> 
    Not empty 
</c:when> 
+0

ok ich habe es korrigiert. –

+0

was ist sonst noch? –

+0

@Vidic Für 'if-else' müssen Sie' ',' ',' 'Tags verwenden. –

1

Sie sollten die if-Anweisung aus der JSTL-Core-Bibliothek verwenden, so wie du c: out

<c:if test="${empty row.file_name}">File name is null or empty!</c:if> 
+0

'leere' Tests nur für beide" null "und leere file_name, nur wenn OP es braucht. –

+0

Ich habe das versucht, aber funktioniert nicht '
Dateiname ist null oder leer ! Download ' –

1

Ohne <c:if/> können Sie file_namenull mit default testen.

<td><c:out value="${row.file_name}" default="NULL FILE"/></td>