1

launcher.xhtml

このフォームは「もの」を使用します

<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>

things.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>      

顔はform:pgidを見つけることができません。「フォーム」を前に付けて、または付けずに試しました。ありがとう

4

1 に答える 1

2

相対クライアントID(で始まらないもの:)は、親NamingContainerコンポーネント(この場合は複合コンポーネント自体)を基準にして検索されます。form:pgidしたがって、のコンテキストで探しています<cc:implementation>

ビュールートに対して絶対になるように、クライアントIDの前に:(デフォルトの区切り文字)を付ける必要があります。NamingContainer

<p:ajax ... update=":form:pgid" />

参照:

于 2013-02-06T02:07:48.930 に答える