When I select value in p:autocomplete first time it fires set method. But when I try to select value once again nothing happens (according to debug it even doesn't fire setter)
In browser network monitor I see that there is the following string added to returned xml on select
<extension ln="primefaces"type="args">{"validationFailed":true}</extension>
But I don't use any validation there
primefaces version is 3.3.1
My faces code:
<p:autoComplete value="#{cityManager.kladrCity}"
completeMethod="#{cityManager.searchKladr}" var="p"
itemLabel="#{p.fullName}" itemValue="#{p}"
converter="#{kladrCityConverter}" id="kladrCity"
forceSelection="true">
<p:ajax event="itemSelect"
listener="#{cityManager.handleKladrSelect}" update="name zipCode" immediate="true"/>
</p:autoComplete>
Converter code:
@Named("kladrCityConverter")
public class KladrCityConverter implements Converter {
@Inject
private KladrService kladrService;
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String key) {
if(key == null || key.trim().equals("")){
return null;
}
KladrCity obj = kladrService.findById(key);
return obj;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object obj) {
if(obj == null){
return "";
}
KladrCity kladrCity = (KladrCity) obj;
return kladrCity.getCode();
}
}