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,,