Another approach i am sharing with you.Normally we want to get selectOneChoice value and we normally get the index.
We will creating an attribute in the selectOneChoice items and the selected value lable.
<af:selectOneChoice value="#{bindings.reportType.inputValue}" required="#{bindings.reportType.hints.mandatory}" shortDesc="#{bindings.reportType.hints.tooltip}" id="soc1" partialTriggers="cb2" autoSubmit="true" styleClass="hrt_reporting" valueChangeListener="#{pageFlowScope.ReportFilterBean.reportTypeVC}" binding="#{pageFlowScope.ReportFilterBean.reportTypeChoice}"> <f:selectItems value="#{bindings.reportType.items}" id="si2"/> <f:attribute name="rowIndexVal" value="#{bindings.reportType.items[bindings.reportType.inputValue].label}"/> </af:selectOneChoice>
and in the bean you can write as
valueChangeEvent.getComponent().processUpdates(FacesContext.getCurrentInstance()); Map map = ((UIComponent)valueChangeEvent.getSource()).getAttributes(); String reportTypeValue = (String)map.get("rowIndexVal");
that’s it, you are done.
Happy coding with Vinay Kumar in techartifact,,