使用 b:inputText 实现自动完成

Implement Autocomplete with b:inputText

我正在尝试使用 bootsfaces 进行自动完成输入,但我无法创建此组件。我如何创建这个组件并从我的 Bean 的一个方法中获取列表?我尝试使用 typeahead-values 属性 但我无法获取值。

<b:inputText
    placeholder=""
    id="autocomplete"
    typeahead="true"
    typeahead-values="#{Expedients.getExpedients2()}"
/>

- 已编辑 -

我设法显示自动完成(与 jquery 冲突) 我现在看到的问题是列表中的元素包含数组括号。 bean代码是:

public List<String> getExpedients2() {
    init();
    List<String> n = new ArrayList<String>();
    n.add("test1");
    n.add("test2");
    return n;
}

最后,我在 xhtml 中添加了这段代码。

<script>
<!--
$('.formulario_autocomplete').typeahead({hint:true,highlight:true,minLength:1},
{limit:5,name:'formulario_autocomplete_typeahead',source: 
BsF.substringMatcher(['[test1','test2]'])});
//-->
</script>

元素的结果是:'[test1' and 'test2]'

如何解决这个问题?

显然,这是我们 BootsFaces 团队应该做的事情。我花了很长时间才发现错误。实际上,它非常简单:当我实现自动完成功能时,我假设您的 bean returns 是一个简单的逗号分隔字符串。

public List<String> getExpedients2() {
    init();
    String n = "";
    n += "test1";
    n += ",";
    n += "test2";
    return n;
}

这种简单的方法效果很好,但我同意你的看法,我们也应该支持列表和数组。我已经在我们的 BootsFaces 错误跟踪器上打开 issue 532

更新: 事实证明,我设法在几分钟内修复了这个错误。新功能将成为 BootsFaces 1.0 的一部分,我们计划在下个月(2016 年 11 月)发布。您可以按照 https://github.com/TheCoder4eu/BootsFaces-OSP/issues/369.

中的说明更早地对其进行测试