Jsf 自动完成不设置对象基本面

Jsf 自动完成不设置对象基本面,jsf,primefaces,Jsf,Primefaces,我有一个自动完成功能,除了没有在backingbean中设置value参数外,它工作得非常好 value="#{marketLoader.invSelectedItem}" 但它只会显示搜索中的正确项目。但是单击一个项目不会设置对象而不是字符串。在豆子里。在这种情况下,marketLoader.completeItemtext将返回一个列表。没有调用setInvSelectedItem方法是否有原因?我需要一个转换器来工作吗 <p:autoComplete id="drop" dropd

我有一个自动完成功能,除了没有在backingbean中设置value参数外,它工作得非常好

value="#{marketLoader.invSelectedItem}"
但它只会显示搜索中的正确项目。但是单击一个项目不会设置对象而不是字符串。在豆子里。在这种情况下,marketLoader.completeItemtext将返回一个列表。没有调用setInvSelectedItem方法是否有原因?我需要一个转换器来工作吗

<p:autoComplete id="drop" dropdown="true" value="#{marketLoader.invSelectedItem}" 
        completeMethod="#{marketLoader.completeItemtext}" 
        var="item" itemLabel="#{item.typeName}"/>
完全方法

private invTypes invSelectedItem;
public List<invTypes> completeItemtext(String query) {
        if (query.length() < 3) {
            return null;
        }
        List<invTypes> tmpList = listDBItem.stream().filter(p -> p.getTypeName().contains(query))
                .collect(Collectors.toList()); 

        return tmpList;
    }

您缺少正确设置所选值的转换器。请参阅。

此处列出了所有可能的原因。您的问题没有包含足够的信息来指出具体的原因。阅读JSFwiki页面如何更快地获得更好的答案:添加更多信息。我需要一个转换器才能做到这一点吗?是的,你需要一个转换器。我建议在这里检查ready to user Omnifaces的转换器:检查这个:[链接],我看到左边的转换器