1. In page <h:panelGrid columns="4" columnClasses="projectInfoTD1,projectInfoTD2" styleClass="gridTh"> <af:selectOneChoice id="propertyType" immediate="false" onchange="submit()" valueChangeListener="#{crDescriptionBean.onChangeNewProptyType}" value="#{crDescriptionBean.descriptionVO.propDescHouseTypeId}" disabled="#{crDescriptionBean.disabled}" > <af:forEach var="item" items="#{crDescriptionBean.propertyTypeList}"> <af:selectItem label="#{item.text}" value="#{item.valueInteger}" /> </af:forEach> </af:selectOneChoice> <af:outputText value="Other - Specify: "/> <af:inputText value="#{crDescriptionBean.descriptionVO.propOtherDesc}" disabled="#{crDescriptionBean.disabled}"/> </h:panelGrid> 2. In ManageBean public void onChangeNewProptyType(ValueChangeEvent event) throws Exception { Integer oldVal = (Integer) event.getOldValue(); Integer newVal = (Integer) event.getNewValue(); UIViewRoot root = FacesContext.getCurrentInstance().getViewRoot(); String componentId = event.getComponent().getClientId( FacesContext.getCurrentInstance() ) ; UIComponent c = root.findComponent(componentId); if(this.getDescriptionVO().getAddressList().size()>1){ if(null != oldVal && null != newVal && oldVal != newVal && oldVal.equals(TownhouseRowhouse)) { FacesMessage message = new FacesMessage("***"); FacesContext.getCurrentInstance().addMessage(null, message); descriptionVO.setPropDescHouseTypeId(oldVal); c.getAttributes().put("value",oldVal); } } javax.faces.context.FacesContext.getCurrentInstance().renderResponse(); }