Primefaces自动完成多次 - 输入时选择输入值

时间:2013-06-07 13:06:04

标签: java jsf-2 primefaces autocomplete

自动完成组件(mutliple)绑定到后台的某些数据,如果自动提供的结果都不符合搜索条件,则在按Enter键时,输入字段的类型值应添加到列表中。

但是,如果某些结果符合搜索条件,我们仍然希望该组件以某种方式允许用户将键入的值添加到列表中,如果需要,则不从列表中选择值。

我们尝试实现的功能实际上非常类似于将电子邮件收件人添加到电子邮件中。 “到”字段自动完成(多个)绑定到用户联系人。但尽管如此,用户仍然可以在创建新电子邮件时添加新的电子邮件地址。

如何使自动完成组件接受按Enter键时添加的实际类型值,或者添加“;”在输入结束?

设置“forceselection = false”似乎不起作用。我们正在使用primefaces 3.5。

谢谢,uros

1 个答案:

答案 0 :(得分:1)

考虑以下completeMethod for autocomplete

public List<String> completeEmailIds(String keyword) {
    List<String> emailsIds = new ArrayList<String>();
    List<String> availableEmailIds = aMethodThatReturnsAvailableEmailIdsBasedOnKeyword(String keyword);
    if(!(availableEmailIds.isEmpty())){
        emailIds.addAll(availableEmailIds);         
    }else{
        emailIds.add(keyword); // if availableEmailIds returns empty, then new typed email will also be added.
    }
    return emailIds;
}

这样,将创建并返回自动完成项。您可以在自动完成组件中使用它们来获取多个值。 希望这有帮助