Выпадающий список связан с конвертером. Ajax работает, когда значение раскрывающегося списка изменяется. Но в случае выбора элемента "-- Select-" из выпадающего списка ajax не вызывает прослушиватель. Я не смог найти хорошего решения. Код приведен ниже.
<h:selectOneMenu value="#{cc.attrs.beanProperty}" converter="myConverter" >
<f:selectItem itemValue="#{null}" itemLabel="-- Select --" />
<f:selectItems value="#{cc.attrs.list}" var="item" itemValue="#{item}" itemLabel="#{item.name}" />
<f:ajax render=":form1" listener="#{myBean.listener}"/>
</h:selectOneMenu>
Конвертер:
@FacesConverter(value = "myConverter")
public class VendorConverter implements Converter {
@Inject ObjectDAO dao;
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if(value == null || value.contains("Select")){
return null;
}
return dao.find(Integer.valueOf(value));
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if(value == null) {
return null;
}
return ((MyObject) value).getId().toString();
}
}
Может ли кто-нибудь указать решение?