PrimeFaces 自动完成下拉列表不显示值

问题描述 投票:0回答:1

从 PrimeFaces 8 更新到 10 后,我的应用程序中的所有自动完成组件在打开下拉菜单时都不会显示值

enter image description here

列表仍为空。当我调试 AutoComplete 和 AutoCompleteRenderer 时,我可以看到生成了空查询的建议

enter image description here

但是稍后在 AutoCompleteRenderer 中,AutoComplete 是一个新实例(具有相同的组件 id),没有任何建议。

enter image description here

这是我的 JSF 页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui">

<h:head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</h:head>

<h:body>
    <h:form>
        <p:autoComplete value="#{testBean.item}"
                        dropdown="true"
                        completeMethod="#{testBean.completeItems}"
                        var="item"
                        itemLabel="#{item}"
                        itemValue="#{iten}" />

        <p:outputLabel value="Selected item: #{testBean.item}" />
    </h:form>
</h:body>
</html>

还有我的豆子

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.apache.commons.lang3.StringUtils;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@ManagedBean
@ViewScoped
public class TestBean {

    private String item;

    private final List<String> items = Arrays
            .asList("item-0", "item-1", "item-2", "item-3", "item-4", "item-5", "item-6", "item-7", "item-8", "item-9");

    public List<String> completeItems(final String query) {
        return items.stream()
                .filter(i -> StringUtils.containsIgnoreCase(i, query))
                .collect(Collectors.toList());
    }
}

你知道我做错了什么吗?

jsf primefaces
1个回答
0
投票

我找到了。

javax.faces.PARTIAL_STATE_SAVING
设置为
false
。如果我在
web.xml
中删除它,一切都会正常。 这个选项是在我加入项目之前设置的,我找不到任何解释为什么它设置为 false 的信息。

© www.soinside.com 2019 - 2024. All rights reserved.