【问题标题】:Java PrimeFaces Autocomplete Facet Repeating Same Groups While GroupingJava PrimeFaces 自动完成 Facet 在分组时重复相同的组
【发布时间】:2016-07-14 11:46:07
【问题描述】:

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

<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);的输出

【问题讨论】:

  • 您确定您通过方法 'completeMethod="#{search.afterSearch}" 返回的列表没有 000 002 值检查吗?
  • 我的列表有值 000 和 0002 但为什么列表中有两个不同的组? @ankushyadav
  • Ohh wait primeface 不会检查其他组。 @ankushyadav

标签: jsf-2 primefaces autocomplete


【解决方案1】:

哦,等一下,primeface 不会在一个之前检查其他组。 所以在执行选择命令时使用group by

【讨论】:

    猜你喜欢
    • 2011-05-02
    • 2011-10-10
    • 2015-04-02
    • 1970-01-01
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多