launcher.xhtml
此表单使用“thing”
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:custom="http://java.sun.com/jsf/composite/components">
<h:form id="form">
<p:panelGrid
id="pgid"
columns="2">
<h:outputText value="title"/>
<h:outputText value="#{bean.value}"/>
</p:panelGrid>
<custom:thing
via="#{bean.via1}"
viaListener="#{bean.via2Listener()}"
vias="#{bean.vias1}">
</h:form>
thing.xhtml
<p:selectOneMenu
process="@this"
value="#{cc.attrs.via}">
<p:ajax
listener="#{cc.attrs.viaListener}"
update="form:pgid"
/>
<f:selectItems value="#{cc.attrs.vias}"/>
</p:selectOneMenu>
面孔无法找到形式:pgid。尝试使用和不使用“形式”。感谢
答案 0 :(得分:1)
相对于父:
组件搜索相对客户端ID(不以NamingContainer
开头),在您的情况下是复合组件本身。所以它在form:pgid
。
<cc:implementation>
您需要在客户端ID前加:
(默认的NamingContainer
分隔符),使其成为视图根的绝对值。
<p:ajax ... update=":form:pgid" />