Alow Galera, sou novo no Forum e tb em JSF. Estou um um problema que já quebrei muito a cabeça mas já esgotei as possibilidades aqui de resolver essa bronca. Peço a ajuda de vocês para me ajudar nesse problema, é o seguinte:
Estou carregando um combobox de funcionarioCargo baseado em outro combobox de empresa com Ajax e JSF, isso é feito para que eu possa cadastrar um funcionario onde eu escolho a empresa e os cargos relacionados a mesma, são carregados automaticamente. Até ai tudo bem. Quando eu vou enviar o formulário acontece o seguinte erro de validação:
? cadastro:funcionarioCargo: Erro de validação: o valor não é válido
Já implementei a classe Converter referente e todos os meus POJOS estão com equals e hashcode rescritos.
vou colocar os códigos para melhor representar:
funcionario.xhtml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
@ManagedBean(name="funcionarioCargoBean") @RequestScoped public class FuncionarioCargoBean {
private FuncionarioCargo funcionarioCargo = new FuncionarioCargo(); private List<FuncionarioCargo> lista = new ArrayList<FuncionarioCargo>(); private List<FuncionarioCargo> cargosPorEmpresa = new ArrayList<FuncionarioCargo>(); private String destinoSalvar;
public String novo() { this.destinoSalvar = "funcionarioCargoSucesso"; this.funcionarioCargo = new FuncionarioCargo(); return "funcionarioCargo"; }
public String editar() { return "/admin/funcionarioCargo"; }
public String salvar() {
FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN(); funcionarioCargoRN.salvar(this.funcionarioCargo); return this.destinoSalvar; }
public String excluir() { FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN(); funcionarioCargoRN.excluir(this.funcionarioCargo); this.lista = null; return null; }
public List<FuncionarioCargo> getLista() { FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN(); this.lista = funcionarioCargoRN.listar(); return this.lista; }
public List<FuncionarioCargo> getCargosPorEmpresa(){ return this.cargosPorEmpresa; }
public List<FuncionarioCargo> listarCargosPorEmpresa(ValueChangeEvent evento){ String empresa = evento.getNewValue().toString(); List<FuncionarioCargo> cargos = new ArrayList<FuncionarioCargo>(); FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN();
Esse mesmo problema estava acontecendo quando eu ia cadastrar o funcionarioCargo com um combo de empresa. Só que ai eu não precisava carregar nada com ajax, apenas listava as empresas em um combo e enviava o form. Só que ai eu implementei a classe Converter e resolvi o problema. Mas no caso ai de cadastrar funcionario com uma empresa e um cargo referente a essa empresa carregando o combo de cargos referente a uma empresa escolhida, acontece esse erro justamente no combo do cargo e eu não consigo inserir de jeito nenhum.
Pergunta
Diogo GM
Alow Galera, sou novo no Forum e tb em JSF. Estou um um problema que já quebrei muito a cabeça mas já esgotei as possibilidades aqui de resolver essa bronca. Peço a ajuda de vocês para me ajudar nesse problema, é o seguinte:
Estou carregando um combobox de funcionarioCargo baseado em outro combobox de empresa com Ajax e JSF, isso é feito para que eu possa cadastrar um funcionario onde eu escolho a empresa e os cargos relacionados a mesma, são carregados automaticamente. Até ai tudo bem. Quando eu vou enviar o formulário acontece o seguinte erro de validação:
? cadastro:funcionarioCargo: Erro de validação: o valor não é válido
Já implementei a classe Converter referente e todos os meus POJOS estão com equals e hashcode rescritos.
vou colocar os códigos para melhor representar:
funcionario.xhtml
FuncionarioCargoBean.java
package jotudeweb.web;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ValueChangeEvent;
import jotudeweb.funcionario.cargo.FuncionarioCargo;
import jotudeweb.funcionario.cargo.FuncionarioCargoRN;
@ManagedBean(name="funcionarioCargoBean")
@RequestScoped
public class FuncionarioCargoBean {
private FuncionarioCargo funcionarioCargo = new FuncionarioCargo();
private List<FuncionarioCargo> lista = new ArrayList<FuncionarioCargo>();
private List<FuncionarioCargo> cargosPorEmpresa = new ArrayList<FuncionarioCargo>();
private String destinoSalvar;
public String novo() {
this.destinoSalvar = "funcionarioCargoSucesso";
this.funcionarioCargo = new FuncionarioCargo();
return "funcionarioCargo";
}
public String editar() {
return "/admin/funcionarioCargo";
}
public String salvar() {
FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN();
funcionarioCargoRN.salvar(this.funcionarioCargo);
return this.destinoSalvar;
}
public String excluir() {
FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN();
funcionarioCargoRN.excluir(this.funcionarioCargo);
this.lista = null;
return null;
}
public List<FuncionarioCargo> getLista() {
FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN();
this.lista = funcionarioCargoRN.listar();
return this.lista;
}
public List<FuncionarioCargo> getCargosPorEmpresa(){
return this.cargosPorEmpresa;
}
public List<FuncionarioCargo> listarCargosPorEmpresa(ValueChangeEvent evento){
String empresa = evento.getNewValue().toString();
List<FuncionarioCargo> cargos = new ArrayList<FuncionarioCargo>();
FuncionarioCargoRN funcionarioCargoRN = new FuncionarioCargoRN();
cargos = funcionarioCargoRN.listar();
for(int i=0; i<cargos.size();i++){
if(cargos.get(i).getEmpresa().toString().equals(empresa)){
this.cargosPorEmpresa.add(cargos.get(i));
}
}
return this.cargosPorEmpresa;
}
public String getDestinoSalvar() {
return destinoSalvar;
}
public void setDestinoSalvar(String destinoSalvar) {
this.destinoSalvar = destinoSalvar;
}
public FuncionarioCargo getFuncionarioCargo() {
return funcionarioCargo;
}
public void setFuncionarioCargo(FuncionarioCargo funcionarioCargo) {
this.funcionarioCargo = funcionarioCargo;
}
}
FuncionarioCargoConverter.java
Esse mesmo problema estava acontecendo quando eu ia cadastrar o funcionarioCargo com um combo de empresa. Só que ai eu não precisava carregar nada com ajax, apenas listava as empresas em um combo e enviava o form. Só que ai eu implementei a classe Converter e resolvi o problema. Mas no caso ai de cadastrar funcionario com uma empresa e um cargo referente a essa empresa carregando o combo de cargos referente a uma empresa escolhida, acontece esse erro justamente no combo do cargo e eu não consigo inserir de jeito nenhum.
Gostaria que me ajudassem se possível.
Obrigado!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.