c:forEach 不遍历 TabView 中的列表

Posted

技术标签:

【中文标题】c:forEach 不遍历 TabView 中的列表【英文标题】:c:forEach not iterating through list in a TabView 【发布时间】:2014-03-31 22:29:16 【问题描述】:

我一直在尝试通过使用 c:forEach 标记来遍历选项卡列表(我自己的自定义选项卡对象)。但是当我运行代码时,选项卡没有显示。该页面没有标签。

当我调试代码时,我发现 c:forEach 项目中列表对象的 getter 方法没有被调用。请参考以下xhtml代码:

<p:tabView id="tabView" dynamic="true" cache="false">   
       <p:ajax event="tabChange" listener="#tabsController.onTabChange" />

       <c:forEach  items="#menusController.tabs" var="customTab" varStatus="loop">
        <p:tab title="#customTab.title" >
            <f:subview id="tab_#loop.index">
                   <ui:include src="#customTab.pageName" />
            </f:subview>
            </p:tab>
         </c:forEach>
       </p:tabView>

我尝试按照这篇帖子JSF dynamically include src in "ui:include src="#bean.pagePath" 中的解决方案进行操作,但仍然没有成功。

【问题讨论】:

你真的需要在你的&lt;p:tabView&gt; 中有一个&lt;ui:include&gt; 吗? 是的,项目确实需要它!!! 没有人对此有答案吗? 【参考方案1】:

你不应该混合 JSP 和 JSF 标签,c:forEach 在 JSF 解析器之前执行,而是使用 ui:repeat。

【讨论】:

以上是关于c:forEach 不遍历 TabView 中的列表的主要内容,如果未能解决你的问题,请参考以下文章

如何遍历 <c:forEach> 中的嵌套映射

c中foreach的用法

使用 c:foreach (JSP/JSTL) 遍历 ArrayList,变量不起作用

使用 JSTL <c:forEach> 标签遍历 List 和 Map 的元素

如何遍历Python中的列?

java 中的c:forEach