I have the following composite component (<v2: inputText2>)
<!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:composite="http://java.sun.com/jsf/composite" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:rich="http://richfaces.org/rich"> <composite:interface> <composite:attribute name="baseId" required="true" /> <composite:attribute name="size" required="true" /> <composite:attribute name="value" required="true" /> <composite:attribute name="align" required="false" default="" /> <composite:attribute name="label" required="false" default="" /> <composite:attribute name="labelStyle" required="false" default="" /> <composite:attribute name="disabled" required="false" default="false" /> <composite:attribute name="required" required="false" default="false" /> <composite:attribute name="inputStyle" required="false" default="" /> <composite:editableValueHolder name="inTxt" /> </composite:interface> <composite:implementation> <h:panelGroup id="#{cc.attrs.baseId}Dec"> <table class="decTable" style="align:#{cc.attrs.align};" border="1"> <tr> <td class="labelSize" style="vertical-align: middle;"> <h:outputLabel id="#{cc.attrs.baseId}Lbl" for="#{cc.attrs.baseId}" value="#{cc.attrs.label}" style="#{cc.attrs.labelStyle}" /></td> <td width="#{cc.attrs.size}"> <h:inputText id="inTxt" value="#{cc.attrs.value}" disabled="#{cc.attrs.disabled}" style="width: 99%; #{cc.attrs.inputStyle}" required="#{cc.attrs.required}"> </h:inputText></td> </tr> <tr> <td colspan="2"><h:panelGroup id="#{cc.attrs.baseId}Error"> <rich:message for="#{cc.attrs.baseid}"> <rich:tooltip id="#{cc.attrs.baseId}TT" styleClass="validError"> <rich:message id="#{cc.attrs.baseId}TTMsg" for="#{cc.attrs.baseId}" showDetail="false" showSummary="true" /> </rich:tooltip> </rich:message> </h:panelGroup></td> </tr> </table> </h:panelGroup> </composite:implementation> </html>
In the following snippet, I want to add the <a4j: ajax> event to this component using the following:
<rich:panel style="width:560px;"> <f:facet name="header"> <h:outputText value="Combobox "></h:outputText> </f:facet> <v2:inputText2 size="300px" baseId="baseId_txt" id="txt" label="Text:" value="#{testInput2.value}"> <a4j:ajax event="change" render="dbgText"/> </v2:inputText2> <h:outputText value="#{testInput2.value}" id="dbgText"/> </rich:panel> <aj4:commandButton id="cmdOK" value="Ok" action="#{testInput2.cmdOk ()}" render="@form" />
When I call the test page, I get the following error:
testInput2.xhtml @23,48 <a4j:ajax> Error: enclosing composite component does not support event change
How can i solve the problem?
Ajax-Event should fire UI-Bean-Method.
Thanks ronald
source share