首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用facelets循环循环

使用facelets循环循环
EN

Stack Overflow用户
提问于 2011-12-28 19:41:03
回答 1查看 2.3K关注 0票数 0

我正在使用jsf2facelets开发一个应用程序。在我的一个视图中,我尝试显示数据库中的数据,并使用了两个嵌套循环。第二个循环使用var,它是为第一个循环声明的var的属性。

但它不起作用。

以下是我的代码的相关部分:

代码语言:javascript
复制
<ui:repeat value="#{MyBean.Vect}" var="item">
     <h:outputText value="${item.attr}" /> <br />
     <ui:repeat value="#{item.nestedtVect}" var="product" >
         <h:outputText value="${product.name}" /> <br />
     </ui:repeat>
</ui:repeat>

第一个循环可以工作,但不能同时工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 21:16:48

您确定item.nestedtVect不为null并且确实包含项吗?乍一看,你的面孔似乎是对的。

例如,考虑这个最小的例子:

支持bean:

代码语言:javascript
复制
@ManagedBean
public class NestedLoopBacking {

    String[][] items = { {"A", "B"}, {"1", "2", "3"} };

    public String[][] getItems() {
        return items;
    }
}

面孔:

代码语言:javascript
复制
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets">

    <h:body>

        <ui:repeat value="#{nestedLoopBacking.items}" var="item">
            <ui:repeat value="#{item}" var="content">
                <h:outputText value="${content}" />
                <br />
            </ui:repeat>
        </ui:repeat>

    </h:body>
</html>

这只适用于™。您可能希望进行显式测试,以查看嵌套的集合是否为空:

代码语言:javascript
复制
<h:outputText value="Collection empty" rendered="#{empty item.nestedtVect}"/>
<h:outputText value="Collection not empty" rendered="#{!empty item.nestedtVect}"/>

附注:

与问题无关,但您可能需要查看您的命名。MyBean.Vect不是一个好名字,item.attr中的attr也不是。而且,您似乎无缘无故地混合了延迟和立即语法(#{}${})。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8655451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档