o selectOneMenu carrega tudo direitinho, mas quando eu clico no botão de adicionar ele me manda um NullPointer na cara, logo, aquele atributo está nulo (ele é testado no método do backing bean usando um .trim(""), mas porque está vazio se eu tenho valores apontando pra ele?
Comecei a desenvolver para web agora e ainda estou um pouco enrolado com esses problemas.
Obrigado!
Posta o erro q fica mais fácil, mas da uma olhada se a sua entidade categoria não esta nula, uma outra coisa o q é carregado nessa sua lista de selectItems?
Testa se a categoria não esta nula, pois se vc fizer um categoria.getNome() por o getNome ser uma metodo de instancia, ele irá gerar um nullPointer…
G
Gernan
Pior que eu já testei, ela não está nula.
Apenas o dela nome está, como se o valor não estivesse indo parar lá.
G
Gernan
Acabei de fazer um teste onde eu seto um nome de uma categoria existente no BD no nome do objeto categoria que é usado no método de adicionarCategoriaNoCliente e funcionou direitinho, isso prova que é apenas o valor do selectOneMenu que não está indo parar no nome da categoria, alguém consegue ver o porque?
Segue o código que funcionou:
public String adicionaCategoriaNoCliente() {
categoria.setNome("OUTRO");
if (!categoria.getNome().trim().equals("")) {
(...)
return null;
}
R
raf4ever
Mostra como vc tá populando ‘itensCategoria’
G
Gernan
Segue:
public List<SelectItem> getItensCategoria() {
LinkedList<SelectItem> itens = new LinkedList<SelectItem>();
itens.add(new SelectItem("Todos"));
for (Categoria catItem : getCategorias()) {
itens.add(new SelectItem(catItem.getNome()));
}
return itens;
}
G
Gernan
Segue um trechinho do erro:
AVISO: #{clienteBean.adicionaCategoriaNoCliente}: java.lang.NullPointerException
javax.faces.FacesException: #{clienteBean.adicionaCategoriaNoCliente}: java.lang.NullPointerException
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:329)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEventsForPhase(AjaxViewRoot.java:304)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:261)
G
Gernan
Help?
R
raf4ever
Tá faltando vc identificar o valor que vai ser atribuido a propriedade:
O primeiro argumento é o valor a ser setado,e o segundo argumento é o label do combo.
G
Gernan
Na verdade eu testei isso logo após a hora que você pediu que eu mostrasse esse método, continuou com o mesmo problema, fiz exatamente a mesma modificação que você.
Acontece que quando tem apenas o atributo do value, o value e o label ficam iguais, dai dá no mesmo (pelo que entendi)
R
raf4ever
Debuga esse metodo adicionaCategoriaNoCliente pra ver o q está dando null.
G
Gernan
Vou debugar
G
Gernan
É o nome da categoria que está null mesmo, quando tenta dá o .trim nele, lança a exceção.