由于problem with @ViewScoped,我必须在我的facelet中使用ui:repeat而不是c:foreach。但是我遇到了这个问题,我想知道是否有人可以建议解决这个问题。
<ui:repeat value="#{someBean.idCodes}"
var="led">
<h:outputText id="mailbox-#{led}"
value="#{someBean.getSomeValue(led)}" />
</ui:repeat>
第一个问题是#{led}引用是id属性未被评估。所有生成的id属性都只是值“mailbox-”。我需要使用document.getElementById()查找特定的元素实例,因此我需要生成id属性。
我看不到解决方法的另一个问题是,如果我将ui:repeat元素包装在h:panelGrid元素中,我最终会得到一个包含一个单元格的表,而不是每个单元格的一个单元格idCodes集合的成员。
使用c:foreach时,这些问题都不存在,但使用该标记会导致其他问题。有什么建议吗?
答案 0 :(得分:1)
请注意javadocs中id属性的类型是String,而不是ValueExpression。这就是为什么你的$ {led}没有被评估的原因。您可以尝试将每个元素包装在div或span中,并将该元素的id设置为基于$ {led}的表达式。