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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java PrimeFaces自动完成构面在分组时重复相同的组相关的知识,希望对你有一定的参考价值。

我正在研究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);的输出

答案

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

以上是关于Java PrimeFaces自动完成构面在分组时重复相同的组的主要内容,如果未能解决你的问题,请参考以下文章

PrimeFaces自动完成多种样式但具有Multiple = false

Primefaces使用POJO和字符串值自动完成[重复]

PrimeFaces Dropdown AutoComplete 内部复合组件

重复值的 Primefaces 行分组

捕获 primefaces <p:autoComplete> 更改事件(检测清空)

ggplot2 跨越组中的嵌套构面