SpringBoot + JSP中用c:foreach 遍历集合为空怎么避免报错

img

请问,SpringBoot + JSP中用c:foreach 遍历集合,使用了begin end 来取得 0 到 2 之间的内容,正常有内容没事,但是一旦没有内容集合为空,就会整个页面报错。
怎么避免集合为空时的报错呢?

“Devil组”引证GPT后的撰写:
用c:forEach标签遍历集合时,如果集合为空,会出现NoSuchElementException异常。为了避免这种情况的发生,可以在使用c:forEach标签之前,先判断集合是否为空。如果集合为空,可以给集合赋一个空的ArrayList对象,这样即使集合为空,也不会出现异常。

例如,在使用c:forEach标签之前,可以添加如下判断语句:

<c:if test="${not empty yourList}">
    <c:forEach var="item" items="${yourList}" begin="0" end="2">
        <!-- 遍历处理逻辑 -->
    </c:forEach>
</c:if>



如果yourList集合不为空,就会执行遍历处理逻辑;如果yourList集合为空,就会跳过遍历处理逻辑,不会出现异常。

另外,也可以使用EL表达式来判断集合是否为空:

<c:if test="${not empty yourList}">
    <c:forEach var="item" items="${yourList}" begin="0" end="2">
        <!-- 遍历处理逻辑 -->
    </c:forEach>
</c:if>



这样也可以避免在集合为空时出现异常。