2

我第一次和第二次都使用相同的查询。我看到第一次调用了完整的方法,但是在计算结果之后,它们没有在 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" >
4

3 回答 3

1

我不确定这个问题是否相关,但同样的情况也发生在我们身上。在将问题跟踪到数据库级别后,我们发现了发生了什么。

不知何故,当用户第一次输入文本时,自动完成组件会在查询字符串中添加两个前导空格。

修剪查询字符串为我们解决了这个问题。

于 2017-04-25T15:42:12.730 回答
0

您的 itemValue 是一个对象,因此您需要实现一个转换器(实现转换器)。

itemValue 是项目值,它作为请求参数传递给服务器,但该值是指向 SelectItem 实例 ( ref ) 的值绑定表达式。

于 2012-05-10T11:27:08.457 回答
-1

我也有同样的问题。当我单击该字段时它不起作用但是当我选择该字段并开始编写它自动完成的东西时。

表达式之间的值字段中也有空格字符(在第二个和第三个 # 字符之前);

    itemLabel="#{p.platformName} #{p.serial} #{p.sitename}" 

当我单击该字段时,它仍然存在。但是当我选择该字段时,它会在写入选定区域时自动选择并替换我的写作。所以它有效;)

例子;

    itemLabel="#{p.platformName}#{p.serial}#{p.sitename}" 
于 2017-11-11T08:50:14.940 回答