How to add the option in the SelectItem during execution

Hello
Can anyone help me please with this use case?

I have a list set to the managed bean as below. I want to add new LOV in list (DROP DOWN 2) "ZZZ" based on the value selected in the DROP DOWN 1 on the same page. So that particular one value selected in the DROP DOWN 1, I want to have this new LOV displayed in the DROP DOWN 2. I'm doing it through ValuchangeListener, but I'm not able to find how to add the LOV. Help, please.



USER INTERFACE
<!-- DROP DOWN 1 -->
<af:selectOneChoice label="Order Type" id="soc2" required="true"
                                        validator="#{lovManagedBean.orderTypeValidator}"
                                        binding="#{userAuthentication.orderType}"
                                        autoSubmit="true"
                                        valueChangeListener="#{lovManagedBean.orderTypeValueChangeListener}">                    
                      <f:selectItems id="si2" value="#{lovManagedBean.orderTypeItems}"/>
</af:selectOneChoice>
<!-- DROP DOWN 2 -->
<af:selectOneChoice label="Request Type" id="soc1" required="true"
                                        validator="#{lovManagedBean.requestTypeValidator}"
                                        binding="#{userAuthentication.requestType}">
                                      
                                       
                      <f:selectItems id="si1" value="#{lovManagedBean.requestTypeItems}" />
</af:selectOneChoice>
Managed Bean code
  public List<SelectItem> getRequestTypeItems() {
    List<SelectItem> list = new ArrayList<SelectItem>();

    list.add(new SelectItem("XXX","XXX"));
    list.add(new SelectItem("YYY","YYY"));
   
   
    this.requestTypeItems = list;
     return list;
  }

  public void orderTypeValueChangeListener(ValueChangeEvent event ) {
      System.out.println("+++ Calling LOVManagedBean.orderTypeValueChangeListener()");
      System.out.println("Old Value for order type:" + event.getOldValue() );
      System.out.println("New Value for order type:" + event.getNewValue());
      if(event.getNewValue().equals("Time and Expense")){
        //Code to add LOV in drop down
      }
          
    
  }

You could make it according to the following example:

Sample.JSPX:



xmlns:f = "http://java.sun.com/jsf/core".
xmlns:h = "http://java.sun.com/jsf/html".
xmlns:af = "http://xmlns.oracle.com/adf/faces/rich" >




*
autoSubmit = 'true' immediate = "true".
* valueChangeListener = "#{pageFlowScope.SampleBean.onValueChangeListener}" > *.
**
**
**
*
* partialTriggers = "soc1."
* Binding = "#{pageFlowScope.SampleBean.selectOneChoice2}" > *.
*
* id = "si3" / > *.
**



* SampleBean.Java: *.

import java.util.ArrayList;
import java.util.List;

Import javax.faces.event.ValueChangeEvent;
Import javax.faces.model.SelectItem;

Import oracle.adf.view.rich.component.rich.input.RichSelectOneChoice;

public class SampleBean {}
Private RichSelectOneChoice selectOneChoice2;

public SampleBean() {}
DataSource.Add (new SelectItem ("XXX", "XXX"));
DataSource.Add (new SelectItem ("YYY", "YYY"));
System.out.println ("to the constructor");
}

Private list datasource = new ArrayList ();
private SelectItem newSelectItem = new SelectItem ("ZZZ", "ZZZ");

* public Sub onValueChangeListener (ValueChangeEvent valueChangeEvent) {*}
* if (valueChangeEvent.getNewValue () .equals ("Add") == true) {*}
* System.out.println("::: Adding new select item choice"); *
* datasource.add (newSelectItem); *
*} else {*}
* if (valueChangeEvent.getNewValue () .equals ("JustSelect") == true) {*}
* System.out.println("::: Removing the added select item choice"); *
* datasource.remove (newSelectItem); *
* System.out.println (datasource.size ()); *
*}*
*}*
* this.selectOneChoice2.setValue (datasource); *
*}*

public void setDatasource (the list data source ) {}
This.DataSource = data source;
}

public getDatasource() {list
Returns the data source;
}

public void setSelectOneChoice2 (RichSelectOneChoice selectOneChoice2) {}
this.selectOneChoice2 = selectOneChoice2;
}

public RichSelectOneChoice getSelectOneChoice2() {}
Return selectOneChoice2;
}
}

* Ensure that the bean is saved in pageFlowScope.*

Thank you
Nini

Tags: Java

Similar Questions

Maybe you are looking for