JSF 2 Composite-Komponente nicht aktualisiert-Wert mit f:ajax

Ich versuche zu implementieren Zusammengesetzte Komponente in JSF 2, die zur Unterstützung des "change" ajax event.
Der CC ist:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:composite="http://java.sun.com/jsf/composite">
<!-- INTERFACE -->
<composite:interface name="inputText">
    <composite:attribute name="label" />
    <composite:attribute name="value" />
    <composite:attribute name="disabled" default="false" />
    <composite:attribute name="required" default="false" />
    <composite:attribute name="rendered" default="true" />
    <composite:clientBehavior name="change" event="change" 
        targets="#{cc.clientId}:input" />
</composite:interface>

<!-- IMPLEMENTATION -->
<composite:implementation>
    <h:panelGroup id="#{cc.clientId}" rendered="#{cc.attrs.rendered}">
        <h:outputLabel value="#{cc.attrs.label}" for="input" />
        <h:inputText id="input" label="#{cc.attrs.label}" 
            value="#{cc.attrs.value}" disabled="#{cc.attrs.disabled}" 
            required="#{cc.attrs.required}" />
        <h:message for="input" />
    </h:panelGroup>
</composite:implementation>
</html>

Nun, ich bin versucht, es zu benutzen in der folgenden form:

<h:form id="form">
    <input:inputText value="#{bean.value}" label="d1" id="d1">
        <f:ajax event="change" update="@this,d2,d3" />
    </input:inputText>
    <h:inputText value="#{bean.value}" id="d2">
         <f:ajax event="change" update="@this,d1,d3" />
    </h:inputText>
    <h:outputText id="d3" value="#{bean.value}" />
</h:form>

Soweit ich das verstanden habe, wenn ich d1, d2 und d3 angezeigt werden soll der Wert von d1, und wenn ich d2, beide d1 und d3 sollten sich entsprechend ändern, wie gut.
Das problem ist, dass wenn ich den Wert ändern in d2, es spiegelt nur in d3, während die d1 bleibt leer, und wenn ich d2, d1 und d2 bleibt leer.

Ich bin mit Mojarra 2.0.2 (ich konnte es nicht Schaffe 2.0.3 auf Google App Engine, die ist meine). Vermisse ich etwas in der Art composite-Bauteilen gebaut werden sollte? Oder ist es ein bug in Mojarra 2.0.2?

InformationsquelleAutor Yonatan | 2011-04-02

Schreibe einen Kommentar