【发布时间】:2012-02-21 08:12:34
【问题描述】:
我有以下代码:
<ui:repeat var = "ctr" value = "#{bean.counterList}">
<h:outputLabel for = "message#{ctr}" value = "#{appMessage['No #{ctr} :" />
<h:inputText id="message#{ctr}" value="#{bean.messageList}" />
</ui:repeat>
counterList 是 List<String>。如果列表在视图中包含 1, 2, 3,则您应该是 3 个带有 id 的输入字段:message1, message2, message3。
EL 对 id 属性没有影响,所有组件只接收 message 作为 ID。另一方面,在标签的价值方面,EL 效果很好。
我可以想象这可能是所需的行为,但有解决方法吗?
更新:
我删除了id 属性,ui:repeat 现在负责命名 id。从源代码中我可以看到生成的 ID 是唯一的,但现在抛出此警告:
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=fm-story:j_idt103:0:j_idt54[severity=(ERROR 2), summary=(Conversion Error setting value '' for 'null Converter'.), detail=(Conversion Error setting value '' for 'null Converter'.)]
sourceId=fm-story:j_idt103:1:j_idt54[severity=(ERROR 2), summary=(Conversion Error setting value '' for 'null Converter'.), detail=(Conversion Error setting value '' for 'null Converter'.)]
【问题讨论】: