Estou com problemas em aplicar o Normalizer em um método de busca.
[code]public List<Funcionario> getFuncionariosGenerico() {
Session session = HibernateUtil.currentSession();
FuncionarioDao funcionarioDao = new FuncionarioDao(session,
Funcionario.class);
String nome = Normalizer.normalize(this.funcionario.getNome(), //ESTA É A LINHA Q ELE ACUSA NO ERRO
Normalizer.Form.NFD).replaceAll(
“\p{InCombiningDiacriticalMarks}+”, “”);
List<Funcionario> lista = funcionarioDao.pesquisaFuncionarios(nome,
this.funcionario.getCpf(), this.funcionario.getRg());
return lista;
}[/code]
Caused by: java.lang.NullPointerException
at java.text.Normalizer.normalize(Normalizer.java:164)
at br.gov.rr.setrabes.handler.FuncionarioHandler.getFuncionariosGenerico(FuncionarioHandler.java:509)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.parser.AstEmpty.getValue(AstEmpty.java:45)
at org.apache.el.parser.AstNot.getValue(AstNot.java:42)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
... 47 more
Tentei implentar o normalizer tanto no bean quanto no dao, e ele dá o mesmo erro… sempre na linha do normalizer.normalize.
public static String normalizar(String n) {
String nome = Normalizer.normalize(n, Normalizer.Form.NFD);
return nome.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}[/code]
E ele sempre me acusa como null na linha que se refere ao normalizer…
Caused by: java.lang.NullPointerException
at java.text.Normalizer.normalize(Normalizer.java:164)
at br.gov.rr.setrabes.dao.FuncionarioDao.normalizar(FuncionarioDao.java:133)
at br.gov.rr.setrabes.dao.FuncionarioDao.pesquisaFuncionarios(FuncionarioDao.java:122)
Estou usando JSF 1.2, tomcat6, richfaces3.3.3.
Agradeço a Ajuda.
[quote=lgweb]de uma olhada no
this.funcionario.getNome();
se ele naum esta retornando null,parece que naum a nada errado com o normalize.[/quote]
if (nome != null)
nome = normalizar (nome);
[/quote]
Olá entanglement, boa tarde.
Obrigado por responder. Vejo que essa dúvida é pouco comum no fórum… acho q é pq eu sou iniciante, estou pegando esta surra… mas nao tenho vergonha de perguntar heheheheh
Mano, fiz a alteração que vc sugeriu, e ele não deu mais a exception, embora tb não está fazendo a pesquisa pelo nome… eu digito o nome, e ele não me retorna nenhum resultado… os outros campos de pesquisa estão funcionando perfeitamente…
O que pode ser??
Agradeço a ajuda…
Por algum motivo - e aí é você que tem de descobrir - você não preencheu o campo “nome” no objeto funcionario.
O LGWeb ( http://www.guj.com.br/posts/list/215057.java#1096260 ) já lhe cantou a bola desde o começo, já de manhã cedo, você tem de ir atrás disso.
[quote=entanglement]Por algum motivo - e aí é você que tem de descobrir - você não preencheu o campo “nome” no objeto funcionario.
O LGWeb ( http://www.guj.com.br/posts/list/215057.java#1096260 ) já lhe cantou a bola desde o começo, já de manhã cedo, você tem de ir atrás disso. [/quote]
Blz. Só uma correção: eu tinha dito que ele não estava pesquisando pelo nome, mas está!! o problema é que se eu colocar o nome com acento, ele não encontra, mesmo que esse registro esteja no banco.
Valeu pela ajuda. Vou dar uma estudada por aqui.