在JSP中使用IF条件

时间:2013-11-28 06:32:59

标签: java jsp if-statement jstl

我有这条线

<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为空,也只执行第二个条件

3 个答案:

答案 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_namenull default进行测试。

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