使用b:inputText实现自动完成

时间:2016-10-27 14:34:00

标签: jsf bootsfaces

我正在尝试使用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>

元素的结果是:&#39; [test1&#39;和&#39; test2]&#39;

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

显然,我们BootsFaces团队应该为此做点什么。我花了很长时间才发现错误。实际上,它非常简单:当我实现自动完成功能时,我假设你的bean返回一个简单的逗号分隔字符串。

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

这种简单的方法效果很好,但我同意你的意见,我们也应该支持列表和数组。我在我们的BootsFaces bug追踪器上打开了issue 532

<强>更新: 事实证明,我设法在几分钟内解决了这个问题。新功能将成为BootsFaces 1.0的一部分,我们计划在下个月(2016年11月)发布。您可以按照https://github.com/TheCoder4eu/BootsFaces-OSP/issues/369上的说明进行测试。