0
當我在p:autocomplete中第一次選擇值時,它會觸發set方法。但是,當我嘗試選擇值再次什麼也沒有發生(根據調試它甚至不火的setter)Primefaces p:autocomplete with ajax設置值只有一次
在瀏覽器的網絡監控我看到有添加到返回的XML上選擇以下字符串
<extension ln="primefaces"type="args">{"validationFailed":true}</extension>
但我不使用任何驗證有
primefaces版本3.3.1
我的臉代碼:
<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>
轉換代碼:
@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();
}
}
如果JSF不能成功轉換的對象,這將導致驗證錯誤。在轉換器中放置斷點以查看是否發生轉換錯誤。 – BestPractices 2012-07-09 13:48:52