getAsObject方法没有获得p:autoComplete

时间:2015-11-16 23:53:28

标签: autocomplete converter

我正在尝试在p:autocomplete中使用转换器,但getAsObject方法的arg2始终为“”。

以下是我的代码:

第xhtml页:

<p:autoComplete id="Cliente" value="#{beanPedido.cliente}"
        converter="converterCliente"
            completeMethod="#{beanPedido.completarCliente}" var="cliente"
            itemLabel="#{cliente.login}" itemValue="#{cliente}"
            >
            <p:ajax event="itemSelect"
                listener="#{beanPedido.onClienteSelecionado}" />
        </p:autoComplete>

豆:

private Cliente cliente;
private List<Cliente> clientes;
public Cliente getCliente() {
    return cliente;
}

public void setCliente(Cliente cliente) {
    this.cliente = cliente;
}

public List<Cliente> completarCliente(String query) {
    clientes = f.buscarTodosClientes();
    List<Cliente> clientesFiltrados = new ArrayList<Cliente>();

    for (int i = 0; i < clientes.size(); i++) {
        Cliente cli = clientes.get(i);
        if (cli.getLogin().toLowerCase().startsWith(query)) {
            clientesFiltrados.add(cli);
        }
    }
    return clientesFiltrados;       
}

public void onClienteSelecionado(SelectEvent e) {
        cliente = (Cliente)e.getObject();
}

转换器:

@FacesConverter("converterCliente")

public class ConverterCliente实现了Converter {

@Override
public Object getAsObject(FacesContext fc, UIComponent uic, String value) {
    if (value!= null && value.trim().length() > 0) {
        try {

            Fachada f = Fachada.getInstancia();

            return (Cliente) f.buscarClienteLogin(value);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    return null;
}

@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
    // TODO Auto-generated method stub
    return null;
}

}

当我调试它时总是返回value =“”

非常感谢你。

0 个答案:

没有答案