selectOneMenu reRender not working with a4j:support
del Dec 17, 2010 8:00 PMI can't seem to get the reRender of a selectOneMenu working read a bunch of post and seems like I am still missing something. I want based on the office selected from a selectOneMenu to populate a list of people in that office in a pickList. Can someone point me in the right direction please? I also added a test tag (testID) which doesn't rerender either.
Using: Seam 2.2
Jboss: 5
RichFces: 3.3.1
Add office page
<h:form> <s:validateAll> <h:selectOneMenu id="officeCombo" value="#{sessionData.office}" converter="#{officeConverter}"> <a4j:support event="onchange" reRender="testID, peopleList" ajaxSingle="true"/> <s:selectItems var="office" value="#{sessionData.offices}" label="#{office.officeNumber}" noSelectionLabel="Select office"/> </h:selectOneMenu> <br/> <h:outputText id="testID" value="#{sessionData.office.officeNumber}"/> <br/> <rich:pickList id="peopleList" value="#{peopleHandler.presentation.people}" copyAllControlLabel="Select All" copyControlLabel="Select"> <f:selectItems value="#{sessionData.peopleSelectItems}" /> <s:convertEntity/> </rich:pickList> </s:validateAll> </h:form>
sessionData:
@Name("sessionData") @Scope(ScopeType.SESSION) @AutoCreate public class SessionData { /** The personnel manager */ @In(create = true) private PersonnelManager personnelManager; /** The current office */ @In(create = true) private Office Office; /** The list of all field offices */ private List<Office> offices; /** The current list of people in an office */ private List<Person> people; /** * If empty, get all of the offices and stuff them into the session * * @return the offices */ public List<Office> getOffices() { if (Offices == null) { offices = new ArrayList<FieldOffice>(); offices = officeManager.getAllActiveOffices(); } return offices; } /** * @param offices * the offices to set */ public void setOffices(List<Office> offices) { people = personnelManager.getActivePeopleInOffice(office.getOfficeNumber()); this.offices = offices; } /** * @return the office */ public Office getOffice() { if (office == null) { office = new Office(); } return office; } /** * @param office * the office to set */ public void setOffice(Office office) { System.out.print("SETTING THE OFFICE TO -" + office.getOfficeNumber()); this.office = office; people = personnelManager.getActivePeopleInOffice(office.getOfficeNumber()); } /** * @return the people */ public List<Person> getPeople() { if (people == null) { people = new ArrayList<Person>(); } return people; } /** * @param people * the people to set */ public void setPeople(List<Person> people) { this.people = people; } /** * Method used to people select items * */ public List<SelectItem> getPeopleSelectItems() { List<SelectItem> retList = new ArrayList<SelectItem>(); for (Person p : getPeople()) { SelectItem si = new SelectItem(); si.setLabel(p.getName().getNameLastFirst()); si.setValue(p); retList.add(si); } return retList; } }