如何使用jstl检查列表是否为空

时间:2013-12-30 18:48:16

标签: java html jsp jstl

我在servlet中定义了一个列表集合,如下所示:

List<BookingRecord> list = getLast24();
req.setAttribute("records", list);

然后在JSP中,我想使用jstl进行以下算法。如果list不为空,请执行XXXX,否则执行YYYY。

我做了类似的事情:

<c:when test="${not empty records}">
<table border="1">
    <tbody>
    <tr>
        <th>id</th>
        <th>hotel</th>
        <th>room</th>
        <th>guest id</th>
        <th>start date</th>
        <th>end date</th>
        <th></th>
    </tr>
    <c:forEach items="${records}" var="record">
        <tr<c:if test="${record.endDate != null }"> style="background-color: gainsboro"</c:if>>
            <td>${record.id}</td>
            <td>${record.hotelName}</td>
            <td>${record.roomNumber}</td>
            <td>${record.personId}</td>
            <td><fmt:formatDate value="${record.startDate}" pattern="yyyy-MM-dd HH:mm"/></td>
            <td><fmt:formatDate value="${record.endDate}" pattern="yyyy-MM-dd HH:mm"/></td>
            <td>
                <c:if test="${record.endDate == null }">
                    <form action="checkout" method="post">
                        <input type="hidden" name="recordId" value="${record.id}"/>
                        <input type="submit" value="退房"/>
                    </form>
                </c:if>
            </td>
        </tr>
    </c:forEach>
    </tbody>
</table>
</c:when>
<c:otherwise>
<h1>目前24小时内,没有订房</h1>
</c:otherwise>

但是tomcat在

给了我一个例外
<c:when test="${not empty records}">

如果有人可以帮助我,我感激不尽。

4 个答案:

答案 0 :(得分:2)

<c:choose>
    <c:when test="${not empty propertyValue}">
        <option value="${fonts}" selected="selected">${fonts}</option>          
    </c:when>
    <c:otherwise>
        <option value="${fonts}">${fonts}</option>
    </c:otherwise>
</c:choose> 

答案 1 :(得分:1)

将jstl标签中的when替换为if。

<c:if test="${not empty records}">

答案 2 :(得分:1)

请参阅选择哪种类似开关案例的语法,或者如果您想要if语句

,请使用
<c:choose>
    <c:when test="${salary <= 0}">
       Salary is very low to survive.
    </c:when>
    <c:when test="${salary > 1000}">
        Salary is very good.
    </c:when>
    <c:otherwise>
        No comment sir...
    </c:otherwise>
</c:choose>

另请参阅this了解jstl标签:

答案 3 :(得分:-1)

使用c:select tag包装代码。它应该