是否可以仅通过指定父复合ID来更新复合组件的子组件?例如。如果我有:
<composite:interface>
<composite:attribute name="value" type="..." required="true"/>
</composite:interface>
<composite:implementation>
<p:treeTable id="main-tree" ...>
...
</p:treeTable>
</composite:implementation>
并以某种方式使用它:
<my:comp id="composite-component" />
...
<p:ajax update="composite-component" />
那可能吗?现在,我看到的唯一方法是显式指定子组件ID:
<p:ajax update="composite-component:main-tree" />
最佳答案
这可以通过在复合组件实现周围包装<div>
并设置div的id=#{cc.clientId}
来完成:
<html ...>
<composite:interface>
...
</composite:interface>
<composite:implementation>
<div id="#{cc.clientId}">
...
</div>
</composite:implementation>
</html>
并在使用页面中:
<my:comp id="composite-component" />
....
<h:commandButton value="Update first name">
<f:ajax execute="composite-component" render="composite-component">
</h:commandButton>
<p:ajax>
应该可以正常工作。关于java - JSF更新复合组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9726818/