c:foreach 使用 List:必须求值为 Collection、Map、Array 或 null
因此,我尝试循环 List
以在我的 Spring Webflow 应用程序的视图中显示。 但是我收到错误必须计算为集合、映射、数组或空。
<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>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为您必须从您正在创建的范围内进行调用
Try
And,为什么您的列表是最终的?
I think you would have to call from the scope that you're creating
Try
And, why are your lists final?
我猜 需要其中一种类型。 您是否尝试过将其转换为数组,例如:
我已经有一段时间没有使用 Java 了,如果这还不够,请原谅我。
I guess
<c:forEach...
needs one of those types. Have you tried converting it to an array, e.g:I haven't worked in Java for a while, forgive me if this is way off.