Gente, por favor me ajudem, estou sem opções!
Estou implementando a minha tela de edição de clientes.Porem quando puxo as informações da tela de pesquisa ele nao popula os campos na tela de cadastro para edição. (Esou usando a tela de Cadastro para editar)
MInha tela de pesquisa está utilizando o seguinte código para pegar o parâmetro
<p:button outcome="/cliente/CadastroCliente.xhtml" icon="ui-incon-pencil" title="Editar" >
<f:param name="cliente" value="#{cliente.id}"/>
minha pagina de cadastro de cliente, na qual irá receber o paremetro está assim. Pois estou utilizando o omnifaces.
<f:metadata>
<o:viewParam name="cliente" value="#{cadastroClienteBean.cliente}"/>
</f:metadata>
Minha classe de Clientes (Repository):
@SuppressWarnings("unchecked")
public List<Cliente> filtrados(ClienteFilter filtro) {
Session session = manager.unwrap(Session.class);
Criteria criteria = session.createCriteria(Cliente.class);
if (StringUtils.isNotBlank(filtro.getCpf())) {
criteria.add(Restrictions.eq("cpf", filtro.getCpf()));
}
if (StringUtils.isNotBlank(filtro.getNome())) {
criteria.add(Restrictions.ilike("nome", filtro.getNome(), MatchMode.ANYWHERE));
}
return criteria.addOrder(Order.asc("nome")).list();
}
public Cliente porId(Long id) {
return manager.find(Cliente.class, id);
}
}
Classe de ClienteConverter
@FacesConverter(forClass = Cliente.class)
public class ClienteConverter implements Converter{
//@Inject
private Clientes clientes;
public ClienteConverter() {
clientes = CDIServiceLocator.getBean(Clientes.class);
}
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
Cliente retorno = null;
if (value != null) {
Long id = new Long(value);
retorno = clientes.porId(id);
}
return retorno;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null) {
//Cliente cliente = (Cliente) value;
//return cliente.getId() == null ? null : cliente.getId().toString();
return ((Cliente) value).getId().toString();
}
return "";
}
}
Porem quando eu clico no botão de editar, ele Envia o parametro pela url. Porem nao poopula os campos.
Por favor alguem me ajuda! nao sei mais oque fazer. :’(