C: foreach باستخدام القائمة: يجب تقييمها إلى مجموعة أو خريطة أو صفيف أو فارغة

StackOverflow https://stackoverflow.com/questions/997885

سؤال

لذلك أنا أحاول حلقة على List<MyClass> لعرضها في عرض تطبيق الربيع الخاص بي. ومع ذلك، أحصل على الخطأ يجب أن يقيم إلى مجموعة أو خريطة أو صفيف أو فارغة.

    <c:forEach items="#{orderedStuff}" var="a">
    #{a.PrettyName}test
    </c:forEach>

لقد حاولت أيضا $ بدلا من #.

هنا هو تعريف تدفق XML الخاص بي.

<view-state id="bookToc">
    <on-render>
        <evaluate expression="stuffService.getOrderedStuff(stuff)" result="viewScope.orderedStuff"
            result-type="dataModel" />
    </on-render>
</view-state>

والوظيفة التي ترجع قائمة الأقسام.

public List<Stuff> getStuff(Stuff stuff) {
    final List<Stuff> orderedStuff= new ArrayList<Stuff>();

    final List<Stuff> sections = stuff.getStuff();
    PropertyComparator.sort(sections, new MutableSortDefinition("sortOrder", true, true));

    for (Section stuff : stuffs) {
        orderedStuff.add(stuff);
        this.addSubsectionsToOrderedStuff(stuff, orderedStuff);
    }

    return orderedStuff;
}

الشيء في الأمر هو، هذا الرمز يعمل

<h:dataTable id="stuffList" value="#{orderedStuff}" var="s"
            rendered="#{not empty orderedStuff}">
            <h:column>
                <f:facet name="header">
                    Section Title
                </f:facet>
                #{s.prettyName}
                <h:dataTable value="#{s.chapters}" var="c" rendered="#{not empty s.chapters}">
                    <h:column>
                        <f:facet name="header">
                        Chapter Title
                        </f:facet>
                    #{c.title}
                    </h:column>
                </h:dataTable>              
            </h:column>
        </h:dataTable>  
هل كانت مفيدة؟

المحلول

أعتقد أنك سيتعين عليك الاتصال من النطاق الذي تقوم بإنشاءه

محاولة

 <c:forEach items="#{bookTok.orderedStuff}" var="a">

ولماذا نهائي قوائمك؟

نصائح أخرى

اعتقد <c:forEach... يحتاج إلى واحدة من هذه الأنواع. هل حاولت تحويلها إلى صفيف، على سبيل المثال:

// Create an array containing the elements in a list
Stuff[] array = (Stuff[])orderedStuff.toArray(new Stuff[orderedStuff.size()]);

لم أعمل في جافا لفترة من الوقت، اغفر لي إذا كان هذا هو الطريق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top