我在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是否有任何属性,我可以将逗号更改为其他角色?
提前致谢
答案 0 :(得分:0)
据我了解,您在使用multiple="true"
时必须绑定到List。如果您只使用字符串,则可以绑定到List<String>
,如果您使用复杂对象,则必须使用List<MyObject>
并添加转换器。
注意:如果您在日志中打印出列表,它仍会写
[mydataitem1, mydataitem 2, mydataitem 3,.....]
但这只是toString() - 用逗号分隔的方法。
此外,您在itemLabel
和itemValue
中也有错误,应始终使用#{}
代替${}
。
我认为process="@form"
可能有点危险,就像你在表单中有其他输入组件验证/转换失败一样,不会调用监听器。我只是将其删除(默认为process =&#34; @ this&#34;)。