微笑狗 2023-03-04 18:51 采纳率: 63.6%
浏览 13
已结题

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

img

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

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-04 19:02
    关注

    “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>
    
    
    
    

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月4日

悬赏问题

  • ¥50 关于#html5#的问题:H5页面用户手机返回的时候跳转到指定页面例如(语言-javascript)
  • ¥15 无法使用此凭据登录,因为你的域不可用,如何解决?(标签-Windows)
  • ¥15 yolov9的训练时间
  • ¥15 二叉树遍历没有报错但无法正常运行
  • ¥15 在linux系统下vscode运行robocup3d上场球员报错
  • ¥15 Python语言实验
  • ¥15 SAP HANA SQL 增加合计行
  • ¥20 用C#语言解决一个英文打字练习器,有偿
  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动