我有以下结构(省略内容和属性):
<ui:repeat id="outerlist">
<my:compositeComponent id="myCC">
<h:panelgroup id="container">
Some content here (outputText, etc.)
<ui:repeat id="innerlist">
<h:commandButton>
<f:ajax render=":#{cc.clientId}:container" />
<!-- all closing tags accordingly -->
由于容器内的内容取决于内部列表按钮的操作,因此我需要对其进行更新。当没有 external 时,上面显示的方法有效ui:repeat
。但是,component not found
当有一个错误时,它会失败并出现错误。
这似乎是由于cc.clientId
then 本身包含外部的行索引ui:repeat
,例如outerlist:0:myCC:container
。正如对此答案的评论所示,此索引 ID 在视图树的服务器端表示中不可用。而是“行索引仅存在于客户端”。我必须承认我不太了解这个索引是如何完成的,以及服务器端有什么可用的。
所以我的问题是:JSF 如何做这个索引,它(在服务器上)如何在 a 中分离不同的“实例”,ui:repeat
并且有没有解决我想要用上面的代码实现的解决方案?