Valuechangelistener Doute dans JSF

SALUT,

Veuillez consulter le code suivant:

                <h:selectOneMenu id="countries" value="#{countryBean.selectedCountry}" onchange="submit()
                                    valueChangeListener="#{countryBean.changeCountry}">
                    <f:selectItems value="#{countryBean.countries }" />
                </h:selectOneMenu>  

Backing Bean

public void changeCountry(ValueChangeEvent event){      
    String newValue = (String)event.getNewValue();
    String oldValue = (String)event.getOldValue();

    System.out.println("New Value : " + newValue);
    System.out.println("Old Value : " + oldValue);

    if ("1".equals(newValue)){
        this.countries = new ArrayList<SelectItem>();
        this.cities.add(new SelectItem("1","Delhi"));
        this.cities.add(new SelectItem("2","Mumbai"));
    }
    if ("2".equals(newValue)){
        this.cities = new ArrayList<SelectItem>();
        this.cities.add(new SelectItem("1","Mossco"));
    }       
}

S'il vous plaît laissez-moi savoir si la mise en œuvre est correcte. Il fonctionne très bien.
Mes questions sont les suivantes:

  • Quel est l'avantage de l'ajout de la f:valueChangeListener balise à l'intérieur de la h:selectOneMenu tag. J'ai utilisé le normal attribut valueChangeListener="#{countryBean.changeCountry}".
  • Est-il nécessaire d'utiliser onchange="submit() ce code pour modifier les valeurs.
  • Quelle est la différence entre la rédaction de la coutume d'auditeurs par la mise en œuvre de l'interface ActionListener et seulement à l'aide de l'attribut dans le composant UIComponent balises (action="methodName").
    Merci de m'expliquer.
  • Mon avis est que les différents auditeur de la mise en œuvre est utile lorsque vous nous soumettez le formulaire, il y a de multiples composantes, les valeurs ont changé. On peut le faire dans le processValueChange méthode. Si nous nous attachons, avec l'attribut, qui sera utile pour le seul composant. S'il vous plaît aidez-moi si je me trompe.
InformationsquelleAutor Krishna | 2011-01-26