我想创建一个可以与其他人一起迭代的复合组件。问题是复合组件是一个命名容器,一个简单的 selectOnMenu 更改和刷新其他 selectOnMenu 是不可能的,因为给 selectOnMenu 的“id”是combo1:combo
并且看不到combo2:combo
。
最好的情况是form1:combo1
and form1:combo2
,然后 combo1 和 combo2 使用 uinamingcontainer h:form
。该链接讨论了这一点,但没有解决方案。
https://cwiki.apache.org/MYFACES/create-a-non-namingcontainer-composite-component.html
再次尝试但不起作用。p:commandbutton
在 CC 中看不到 div 的 id。
获取JSF2复合组件父级的clientId
<p:commandButton value="asd" partialSubmit="true" process="@this" update="fooId"/>
<cf:label id="fooId" title="xxxxx" />[index.xhtml]
<composite:interface componentType="RootComponent" preferred="false">
<composite:attribute name="title" />
</composite:interface>
<composite:implementation>
<div id="#{cc.immediateParent.clientId}:#{cc.id}">
#{currentDate}
<h:panelGroup id="#{cc.clientId}" layout="block">
<p:outputLabel id="#{cc.clientId}_lb" value="#{cc.attrs.title}">
<composite:insertChildren />
</p:outputLabel>
</h:panelGroup>
</div>
</composite:implementation>[label.xhtml](compositecomponent)