Как обновить список выбора первичных лиц при определенном событии, таком как нажатие кнопки, изменение поля выбора и т. д.)?

Привет всем, я новичок в jsf, я пытаюсь использовать список выбора основных лиц из (http://www.primefaces.org/showcase/ui/picklist.jsf) Сборщик работает нормально,

Но когда я пытаюсь заполнить sourceList DualModel на основе определенного события, такого как щелчок по кнопке, событие динамического изменения поля выбора, список выбора не меняет значения. Когда я отлаживал, Listener вызывает правильный метод и заполняет список городами, но в пользовательском интерфейсе измененный список не отображается. Также в примере с простыми лицами в конструкторе инициализируются города. Но я этого не делаю.

Я оказался здесь, когда искал [ссылку]JSF ajax commandbutton не обновляет список выбора простых лиц< /а>

               Here's my xhtml code
       <p:commandButton value="Ajax Submit" update="@form" id="ajax"  
       actionListener="#{codetype.PopulateCodes}" styleClass="ui-priority-primary"/>  
       <p:pickList id="pickList" value="#{pickListBean.cities}" var="city"
    itemLabel="#{city}" itemValue="#{city}" />

Здесь вместо @form я попробовал идентификатор piclist, такого как pickList, тогда также список выбора не отображается с измененным списком моего компонента

      @ManagedBean(name="codetype")
      @ViewScoped
      public class CodetypeBean implements Serializable {
       public CodetypeBean () {

    // Cities
    List<String> citiesSource = new ArrayList<String>();
    List<String> citiesTarget = new ArrayList<String>();


        citiesSource.add("Istanbul"); citiesSource.add("Ankara");
     citiesSource.add("Izmir"); citiesSource.add("Antalya");
      citiesSource.add("Bursa");


    cities = new DualListModel<String>(citiesSource, citiesTarget);
      }
           public void PopulateCodes() {

     List <String>changedListSource= new ArrayList<String>();
    //in real time some logic to get the list from db
            //manually adding some list
                    changedListSource.add("PRO-1");
        changedListSource.add("PRO-2");
        changedListSource.add("PRO-3");
        cities = new DualListModel<String>(changedListSource, changedListTarget);

    }}

person PMD    schedule 01.02.2014    source источник