我有这条线
<td><c:out value="${row.file_name}"/></td>
file_name是mysql数据库表中的列名。
我想检查file_name是否有值,所以我想使用IF condition
,但如何通过row.file_name
?
像if(row.file_name!=null){}
更新
<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>
在这种情况下,即使file_name为空,也只执行第二个条件
答案 0 :(得分:6)
首先,if
不是循环,它只是一个声明。您可以使用<c:if>
标记来测试值:
<c:if test="${row.file_name != null}">
Not Null
</c:if>
对于Java if-else
语句,JSTL标记等效于<c:choose>
(不,没有<c:else>
):
<c:choose>
<c:when test="${row.file_name != null}">
Not Null
</c:when>
<c:otherwise>
Null
</c:otherwise>
</c:choose>
请注意,${row.file_name != null}
条件仅适用于true
文件名non-null
。并且空文件名不为空。如果要检查null
和空文件名,则应使用empty
条件:
<!-- If row.file_name is neither empty nor null -->
<c:when test="${!empty row.file_name}">
Not empty
</c:when>
答案 1 :(得分:1)
您应该使用JSTL Core库中的if语句,就像使用c:out
一样<c:if test="${empty row.file_name}">File name is null or empty!</c:if>
答案 2 :(得分:1)
如果没有<c:if/>
,您可以使用file_name
对null
default
进行测试。
<td><c:out value="${row.file_name}" default="NULL FILE"/></td>