2016-06-22 18 views
0

Ich versuche, eine Methode in Java durch die SelectOneRadio Komponente aufzurufen, aber nichts passiert. Aber die Komponente wird von meiner Firma erstellt, um ENUM zu akzeptieren.Aufruf einer Methode in SelectOneRadio JSF

die Komponente:

<composite:interface> 
<composite:attribute name="label" /> 
<composite:attribute name="value" /> 
<composite:attribute name="converter" /> 
<composite:attribute name="lista" /> 
<composite:attribute name="enumClass" /> 
<composite:attribute name="id" default="campo"/> 
<composite:attribute name="columns" default="1"/> 
<composite:attribute name="required" default="false"/> 
<composite:attribute name="disabled" default="false"/> 
<composite:attribute name="tamanhoTotal" default="12"/> 
<composite:attribute name="tamanho" default="10"/> 
<composite:attribute name="tamanhoLabel"/> 
<composite:attribute name="layout" default="lineDirection"/> 

<composite:clientBehavior name="change" event= "change" targets = "campo"/> 

<composite:implementation> 
     <p:selectOneRadio id="#{cc.attrs.id}" 
          value="#{cc.attrs.value}" 
          disabled="#{cc.attrs.disabled}" 
          columns="#{cc.attrs.columns}" 
          layout="#{cc.attrs.layout}" 
          required="#{cc.attrs.required}" 
          label="#{cc.attrs.label}" 
          converter="#{cc.attrs.converter}" 
          requiredMessage="#{cc.attrs.label} : Campo obrigatório"> 
      <f:selectItems value="#{referenciaMap[cc.attrs.enumClass]}"/> 
     </p:selectOneRadio>  

Und versuchen, dies bis jetzt:

Das ist MEIN XHTML:

<campo:radio enumClass="StatusTituloEnum" 
                  label="Situação" tamanho="1" tamanhoTotal="1" 
                  columns="1" layout="grid" 
                  disabled="#{!recTituloCriteria.disableRadioStatus}" 
                  converter="#{StatusTituloConverterById}"> 
                  <p:ajax event="change" process="@this" 
                    update=":form:idTabela" listener="#{recTituloCriteria.handleKeyEvent}" /> 
                 </campo:radio> 

Und das ist meine Methode in JAVA:

public void handleKeyEvent() { 
    //text = text.toUpperCase(); 
    System.out.println("hi"); 
} 

Antwort

0

Ein Teil Ihrer <campo:radio> in XHTML fehlt. Kannst du es bitte bearbeiten? Gibt es Fehler in Ihrer Webbrowser-Konsole?

Wahrscheinlich hilft es, onclick="this.form.submit();" in Ihrem selectOneRadio hinzuzufügen.

Ein anderer Vorschlag ist, valueChangeListener zu verwenden, wenn Sie nicht auf Ajaxaufrufen bestehen.

BEARBEITEN: Versuchen Sie, das Ereignis in ein Ereignis click zu ändern. Ich denke, das wird ...

+0

hat hier nicht funktioniert ... aber danke für deine Antwort :) –