我在第一次和第二次使用相同的查询。我看到第一次调用完整的方法,但在计算结果后,它们不会在UI上发送。有没有人遇到过这个问题?你有什么想法解决这个问题吗?
<p:autoComplete id="filterByMachine" value="#{notificationListViewLazyModel.selectedMachine}" scrollHeight="500"
completeMethod="#{notificationListViewLazyModel.complete}" converter="#{notificationListViewLazyModel.converter}"
var="p" itemLabel="#{p.platformName} #{p.serial} #{p.sitename}"
itemValue="#{p}" forceSelection="true" size="48" >
答案 0 :(得分:1)
我不确定这个问题是否相关,但同样的情况恰好发生在我们身上。在将问题追溯到数据库级别之后,我们发现了正在发生的事情。
autoComplete组件以某种方式在用户第一次输入文本时为查询字符串添加两个前导空格。
修剪查询字符串为我们解决了问题。
答案 1 :(得分:0)
您的itemValue是一个Object,因此您需要实现一个转换器(implement converter)。
itemValue是items值,它作为请求参数传递给服务器,但该值是一个指向SelectItem实例(ref)的值绑定表达式。
答案 2 :(得分:-1)
我也有同样的问题。当我点击该字段时它不起作用,但当我选择到该字段并开始写某些东西时它会自动完成。
表达式之间的值字段中也有空格字符(在第二个和第三个#字符之前);
itemLabel="#{p.platformName} #{p.serial} #{p.sitename}"
当我点击该字段时,它仍然存在。但当我选择该字段时,它是自动选择的,而写入选定的区域取代了我的写作。所以它有效;)
示例;
itemLabel="#{p.platformName}#{p.serial}#{p.sitename}"