您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

javax.servlet.ServletException:javax.servlet.jsp.JspTagException:不知道如何在提供的“项目”中进行迭代

javax.servlet.ServletException:javax.servlet.jsp.JspTagException:不知道如何在提供的“项目”中进行迭代

由以下原因引起:javax.servlet.ServletException:javax.servlet.jsp.JspTagException:不知道如何遍历提供的“项目”<forEach>

<c:forEach items>不会引用可对其进行迭代的有效对象时,就会发生这种情况。该目的应该是一个Object[]一个普通的阵列), ,Collection,,Map 或(也参见源代码)。不能迭代其他任何事情。您的课程不是上述任何一个类型的实例,因此它将失败。IteratorEnumerationString<c:forEach>``DetResults

您的DetResults课程看起来不正确。它看起来基本上像一个God bean,具有多个单独实体的所有属性的集合。这个不对。Bean类最多只能表示一个实体。重写您的DetResults类,以使您基本上可以得到一整套有价值的javabeans:

List<DetResult> results = detDAO.fetchDetResults(paramBean);

这样您就可以按以下方式访问它:

<c:forEach items="${results}" var="result">
    ${result.heading}
    <c:forEach items="${result.data}" var="dataItem">
        ${dataItem}
    </c:forEach>
</c:forEach>

如果您确实坚持要保持DetResults原样,则可以按以下方式访问它:

<c:forEach begin="0" end="${results.columnCount}" varStatus="loop">
    ${results.headings[loop.index]}
    <c:forEach items="${results.data[loop.index]}" var="dataItem">
        ${dataItem}
    </c:forEach>
 </c:forEach>

具体问题 ,该<c:forEachvar>属性不正确。您不应为它提供与范围中现有对象相同的名称。只会发生冲突。但这是一个新问题的主题,如果您无法解释错误消息。

java 2022/1/1 18:15:06 有500人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶