Search code examples
jsfrichfaces

Cannot get id of selectItems of selectOneMenu in jsf


The Id (personBean.idSelectedItem) always return null. though i can select and change my values of drop down list but Id is still null, not changing accordingly. Please help me, below is my code:

<h:selectOneMenu value="#{personBean.idSelectedItem}" immediate="true"  onchange="EnableDisable()">
  <f:selectItems value="#{personBean.apptDuration}" />               
</h:selectOneMenu>

My bean is:

private String idSelectedItem = null;
private List<SelectItem> apptDuration = null;
public String getIdSelectedItem() {
   System.out.println("getIdSelectedItem == " + idSelectedItem);
   return idSelectedItem;}

public void setIdSelectedItem(String idSelectedItem) {
    this.idSelectedItem = idSelectedItem;
    System.out.println("setIdSelectedItem == " + idSelectedItem);
}

public List<SelectItem> getApptDuration() {
  if (apptDuration == null) {
      apptDuration = new ArrayList<SelectItem>();
      apptDuration.add(new SelectItem("P1", "Day(s)"));
      apptDuration.add(new SelectItem("P2", "5 min"));
      apptDuration.add(new SelectItem("P3", "10 min"));
      apptDuration.add(new SelectItem("P4", "15 min"));
  }
  return apptDuration;
}

public void setApptDuration(List<SelectItem> apptDuration) {
    this.apptDuration = apptDuration;
}

What is wrong with my code?


Solution

  • I solved my problem using a4j:support: Now it works fine not reloading my page every time :

     <h:selectOneMenu id="appt" value="#{personBean.idSelectedItem}" >
                     <f:selectItems value="#{personBean.apptDuration}"/>
                     <a4j:support event="onchange" action="#{personBean.changeID}" oncomplete="DisableFields()" reRender="updatedId"/>  
                     <h:inputHidden id="updatedId" value="#{personBean.updatedApptId}"/>                 
    </h:selectOneMenu>