Boa madrugada a todos… são quase duas da madruga e estou tomando uma surra do ajax. existem varios topicos aqui sobre isso mas ainda não consegui entender o porque meu codigo na hora de carregar o segundo selectOneMenu da o seguinte erro:
03/10/2009 01:24:34 com.sun.faces.lifecycle.RenderResponsePhase execute
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=subCategoria[severity=(ERROR 2), summary=(subCategoria: Validation Error: Value is not valid), detail=(subCategoria: Validation Error: Value is not valid)]
tenho meu primeiro selectOneMenu que carrega todas as minhas categorias que quando num actionEvent executa o metodo que carrega o selectOneMenu de subCategorias que é ai que o erro acontece dizendo que não existe nenhum id pro meu valor.
ja olhei, olhei de novo e não sei onde está o erro.
vou postar o bean que carrega os valores no selectOneMenu
Este primeiro mostra todas as categorias no selectOneMenu
//mostra as categorias na tela
public List<SelectItem> getListaDeCategoria() throws ClassNotFoundException, SQLException {
listaDeCategoria = new LinkedList<SelectItem>();
listaDeCategoria.add(new SelectItem("Selecionar Categoria"));
listaDeSubCategoria = new LinkedList<SelectItem>();
listaDeSubCategoria.add(new SelectItem(""));
for (ProdutoCategoria categoria : produtoCategoriaDao.getAllCategorias()) {
listaDeCategoria.add(new SelectItem(categoria, categoria.getNomeCat()));
}
return listaDeCategoria;
}
o segundo lista as subCategorias de acordo com a opção escolhida acima
//mostra as categorias na tela
public List<SelectItem> getListaDeCategoria() throws ClassNotFoundException, SQLException {
listaDeCategoria = new LinkedList<SelectItem>();
listaDeCategoria.add(new SelectItem("Selecionar Categoria"));
listaDeSubCategoria = new LinkedList<SelectItem>();
listaDeSubCategoria.add(new SelectItem(""));
for (ProdutoCategoria categoria : produtoCategoriaDao.getAllCategorias()) {
listaDeCategoria.add(new SelectItem(categoria, categoria.getNomeCat()));
}
return listaDeCategoria;
}
//executado quando o valor da categoria for alterado
public List<SelectItem> selecionarCategoria(ValueChangeEvent evento) throws ClassNotFoundException, SQLException {
listaDeSubCategoria = new LinkedList<SelectItem>();
for (ProdutoSubCategoria sub : produtosubCategoriaDao.getAllSubCategorias()) {
int caso = Integer.parseInt(evento.getNewValue().toString());
if (sub.getIdCategoria() == caso) {
listaDeSubCategoria.add(new SelectItem(sub, sub.getDescrSubCategoria()));
}
}
return listaDeSubCategoria;
}
é nesse momento que dá o erro, quando vou alterar o valor eu não consigo pegar o id do objeto selecionado.