【发布时间】:2015-07-01 07:47:57
【问题描述】:
我正在将我的应用程序从 JSF 1.2 升级到 JSF 2。
我正在尝试以下简单的 forEach 标记,但它没有显示循环内的任何内容。
<table
id="tab${sectionId}"
border="0"
cellpadding="0"
cellspacing="0"
width="100%"
class="listingTable"
>
<c:forEach
var="row"
rowStatus="index"
items="#{bean.department.userActivities}"
>
<tr>
<td>
test
</td>
</tr>
</c:forEach>
</table>
价值测试没有出现。 c:forEach 的实现是否发生了变化?
我尝试替换为,但还有其他问题。它正在渲染其中的内容。但是,如果我有一个内部组件,我无法将支持 bean 值分配为组件的 ID。示例如下
<table
id="tab${sectionId}"
border="0"
class="listingTable"
>
<t:dataList
var="row"
rowIndexVar="index"
value="#{bean.department.userActivities}"
>
<h:column>
<h:outputText id="#{row.activityCode}">test1</h:outputText>
</h:column>
</t:dataList>
</table>
所以,用 .我无法将支持 bean 属性分配为组件的 ID。我收到错误“java.lang.IllegalArgumentException:组件标识符不能是零长度字符串”
谁能帮助我理解为什么 c:forEach 标签不起作用。我有大量代码正在使用 forEach 标签。通过升级,如果 JSF2 不再支持每个 forEach,我将不得不删除它:(
【问题讨论】: