Primefaces autoComplete更改分隔符

时间:2017-03-17 17:10:15

标签: primefaces autocomplete

我在JSF页面中使用了primefaces autoComplete。它使用的分隔符是逗号。我正在拆分数据以将autoComplete的数据转换为Array。现在的问题是我的autoComplete中的数据项包含“,”。当我在我的数据项中使用Split时,它会将我的数据拆分为。例如:

[mydataitem1,mydataitem 2,mydataitem,3,.....] 现在Array变为

mydataitem1 mydataitem 2 mydataitem 3 ...

<p:autoComplete id="someId" multiple="true" value="${someBean.SomeValue}"
    completeMethod="${someBean.completeMethod}" var="value"
    itemLabel="value" itemValue="#{title}" forceSelection="true">
    <p:column>
        <h:outputText  value="#{title}" />
    </p:column>
    <p:ajax event="itemSelect" listener="#{someBean.action}" process="@form" /> 
</p:autoComplete>

autoComplete是否有任何属性,我可以将逗号更改为其他角色?

提前致谢

1 个答案:

答案 0 :(得分:0)

据我了解,您在使用multiple="true"时必须绑定到List。如果您只使用字符串,则可以绑定到List<String>,如果您使用复杂对象,则必须使用List<MyObject>并添加转换器。

注意:如果您在日志中打印出列表,它仍会写

[mydataitem1, mydataitem 2, mydataitem 3,.....]

但这只是toString() - 用逗号分隔的方法。

此外,您在itemLabelitemValue中也有错误,应始终使用#{}代替${}

我认为process="@form"可能有点危险,就像你在表单中有其他输入组件验证/转换失败一样,不会调用监听器。我只是将其删除(默认为process =&#34; @ this&#34;)。