Java PrimeFaces自动完成构面在分组时重复相同的组

问题描述 投票:0回答:1

我正在研究Java EE项目并使用Primefaces。我尝试按组显示搜索操作结果。为了显示结果,我使用的是primefaces autocomplete facet。我遇到了一些后果,但问题是同样的组正在重复,如下所示。('0002','000'组重复)

enter image description here

<p:autoComplete id="generalSearch" completeMethod="#{search.afterSearch}"  minQueryLength="3"
                                    var="doc" itemLabel="#{doc.get('NAME')}" itemValue="#{doc}" forceSelection="true" groupBy="#{doc.get('CODE')}"
                                    converter="searchConverter" scrollHeight="500"
                                    effect="blind" styleClass="SearchText" placeholder="Search"/>

这是我的SearchConverter类

@FacesConverter("searchConverter")
public class SearchConvert implements Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        if(value != null && value.length() > 0) {
            try {
                SearchBean sBean = (SearchBean) context.getExternalContext().getSessionMap().get("search");
                System.out.println("VALUE " + value);
                return sBean.getDocs().get(Integer.parseInt(value));
            } catch(NumberFormatException e) {
                Log.debug("ERROR");
                throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid theme."));
            }
        }
        else {
            return null;
        }
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if(value != null) {
            return (String) ((SolrDocument) value).get("id");
        }
        return null;
    }    
}

我不确定getAsObject功能是否有效。因为我看不到System.out.println("VALUE " + value);的输出

jsf-2 primefaces autocomplete
1个回答
0
投票

哦等等primeface不会检查其他组之前的其他组。因此在执行select命令时请使用group by

© www.soinside.com 2019 - 2024. All rights reserved.