Jsf 2 p:ItemSelect上的bean中的autocomplete总是返回null

Jsf 2 p:ItemSelect上的bean中的autocomplete总是返回null,jsf-2,primefaces,autocomplete,Jsf 2,Primefaces,Autocomplete,我对p有一些问题:autocomplete,Primefaces,autocomplete是可以的,但是当用户选择某个值时,我强制ajax请求来处理所选的项,但是该项总是返回null 我怎样才能解决这个问题 以下是观点: <h:outputLabel value="Cliente: " /> <p:autoComplete value="#{autoCompleteCliente.clienteSelecionado}"

我对p有一些问题:autocomplete,Primefaces,autocomplete是可以的,但是当用户选择某个值时,我强制ajax请求来处理所选的项,但是该项总是返回null

我怎样才能解决这个问题

以下是观点:

<h:outputLabel value="Cliente: " />
            <p:autoComplete value="#{autoCompleteCliente.clienteSelecionado}"
                converter="ClienteConverter" style="margin-left: 8px;width: 200px;"
                id="clientecomplete"
                completeMethod="#{autoCompleteCliente.completeCliente}"
                var="cliente" itemLabel="#{cliente.nome}" itemValue="#{cliente}"
                forceSelection="true">
                <f:facet name="itemtip">
                    <h:panelGrid columns="2" cellpadding="5">
                        <f:facet name="header">
                            <p:graphicImage value="resources/images/chamadosIcon.png"
                                width="40" height="50" />
                        </f:facet>
                        <h:outputText value="Codigo: " />
                        <h:outputText id="codigo" value="#{cliente.codigo}" />
                        <h:outputText value="CNPJ " />
                        <h:outputText id="CNPJ" value="#{cliente.cnpj}" />
                    </h:panelGrid>
                </f:facet>


                <p:ajax listener="#{autoCompleteCliente.handleSelect}" event="itemSelect"
                    process=":chamadoEdicao:clientecomplete" />



            </p:autoComplete>

这是豆子:

  @ManagedBean(name = "autoCompleteCliente")
  @ViewScoped
  public class ClienteAutoComplete {

private Cliente clienteSelecionado;
private List<Cliente> clientes;

public ClienteAutoComplete() {
    clientes = ClienteConverter.todosClientes;
}


@PostConstruct
public void construct() {
    System.out.println("Iniciou autoCompleteCliente");
}

@PreDestroy
public void destroy() {
    System.out.println("Fechou autoCompleteCliente");
}

public Cliente getclienteSelecionado() {
    return clienteSelecionado;
}

public void setclienteSelecionado(Cliente clienteSelecionado) {
    this.clienteSelecionado = clienteSelecionado;
}

/**
 * Método para autocompletar o nome do cliente para disponibilizar na view
 * de cadastro de chamado.
 * 
 * @author helios-kob
 * @param query
 *            String
 * @return complete List<String>
 * 
 */
public List<Cliente> completeCliente(String query) {
    ArrayList<Cliente> resultados = new ArrayList<Cliente>();

    for (Cliente cliente : clientes) {
        if (cliente.getNome().contains(query)) {
            resultados.add(cliente);
        }
    }

    return resultados;

}

public void handleSelect(SelectEvent event) {
    String value = (String) event.getObject();
    System.out.println("selected "+value);

}
@ManagedBean(name=“autoCompleteCliente”)
@视域
公共类客户端自动完成{
私人客户;私人客户;
私人名单客户;
公共客户自动完成(){
clientes=clientconverter.todoclients;
}
@施工后
公共空间构造(){
System.out.println(“Iniciou自动完成客户端”);
}
@发情前期
公共空间销毁(){
System.out.println(“Fechou自动完成客户端”);
}
公共客户getclientseleconado(){
回访客户;
}
public void setclientseleconado(Cliente clientseleconado){
this.clientseleconado=clientseleconado;
}
/**
*Método para autocompletar o nome do client para disponilizar na view
*卡达斯特罗·德查马多。
* 
*@作者helios kob
*@param查询
*串
*@返回完整列表
* 
*/
公共列表完成客户端(字符串查询){
ArrayList resultados=新的ArrayList();
用于(客户:客户){
if(cliente.getNome().contains(查询)){
结果添加(客户);
}
}
返回resultados;
}
public void handleSelect(SelectEvent事件){
字符串值=(字符串)事件。getObject();
系统输出打印项次(“所选”+值);
}

}

解决了,主要问题在ClientConverter上,如果比较了cliente的一个属性,则返回null,但与任何属性都不匹配


如果有人需要帮助,首先是转换器。

您能解释一下您的答案吗?我也有同样的问题