Петля в петле с гранями - PullRequest
       16

Петля в петле с гранями

0 голосов
/ 28 декабря 2011

Я разрабатываю приложение, используя jsf2 и facelets.В одном из моих представлений я пытаюсь отобразить данные из базы данных и использую два вложенных цикла.Второй цикл использует переменную, которая является атрибутом переменной, объявленной для первого цикла.

Но это не работает.

Вот соответствующая часть моего кода:

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

Первый цикл работает, но не оба.

1 Ответ

4 голосов
/ 28 декабря 2011

Вы уверены, что item.nestedtVect не равно нулю и на самом деле есть предметы?С первого взгляда ваш Facelet кажется правильным.

Например, рассмотрим следующий минимальный пример:

Бэк-бин:

@ManagedBean
public class NestedLoopBacking {

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

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

Facelet:

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

Это просто работает ™.Возможно, вы захотите провести явный тест, чтобы убедиться, что ваша вложенная коллекция пуста или нет:

<h:outputText value="Collection empty" rendered="#{empty item.nestedtVect}"/>
<h:outputText value="Collection not empty" rendered="#{!empty item.nestedtVect}"/>

ps

Не имеет отношения к вопросу, но вы можете посмотреть на свое именование,MyBean.Vect не очень хорошее имя, равно как и attr в item.attr.Кроме того, вы, кажется, смешиваете отложенный и немедленный синтаксис (#{} и ${}) без видимой причины.

...