0

p:autocomplete で初めて値を選択すると、set メソッドが起動します。しかし、もう一度値を選択しようとしても何も起こりません(デバッグによると、セッターも起動しません)

ブラウザーのネットワーク モニターでは、選択時に返された xml に次の文字列が追加されていることがわかります。

<extension ln="primefaces"type="args">{"validationFailed":true}</extension>

しかし、そこでは検証を使用しません

プライムフェイスのバージョンは 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();
}

} 
4

1 に答える 1

0

変化する

@Named("kladrCityConverter")

@FacesConverter("locationConverter")
于 2012-08-21T20:52:55.957 に答える