为什么JSTL forEach没有完成循环?

时间:2015-11-10 17:26:07

标签: jsf foreach jstl

我有一个xhtml文件循环某些项目,每个项目都包含一个循环显示一些项目的xhtml:

    file-a.xhtml
    <c:forEach var="record" items="#{firstItemsList}">
      do some stuff...
      <ui:include src="file-b.xhtml" />
    </c:forEach>

在文件中,我有以下内容:

    #{viewController.resetComments()}
    <c:forEach var="item" items="#{comments}" varStatus="status">
      show some tags here...
    </c:forEach>

问题是在文件-a中的第二个或第三个或......文件-b的导入中,对于文件-b中的每个循环将循环通过第一次调用中的最大注释数。例如,如果第一次为file-b导入call有3个元素,而第二次调用file-b有5个元素,那么forEach循环停止在第二个调用的第3个索引上显示内容。现在,如果第一个调用中包含零个元素..对于file-b的所有其他进行调用,即使它们有注释项也不会显示任何内容。

问题是如何在每次调用file-b时正确完成forEach循环完成任务?

1 个答案:

答案 0 :(得分:0)

我仍然不知道为什么循环不能正常工作但是我通过硬编码html片段绕过了问题,即forEach在我的控制器中的java代码中的xhtml文件中生成。所以在文件B中我有以下而不是forEach循环。

    <h:outputFormat escape="false" value="#{controller.showComments(list)}" />