Boa tarde a todos !
Estou com o seguinte problema: no meu MANAGEDBEAN ALUNOFACES, instanciei um objeto de outro MANAGEDBEAN (não sei se é correto?) ,chamado DisciplinaBean, quando efetuo o login eu rotorno um objeto do tipo aluno já setados com seu atributos e passo para o sete do ManagedBean disciplinaBEan:
Bean AlunoFaces
public String efetuarLogin() throws SQLException, ClassNotFoundException {
if (alunoDAO.efetuarLogin(this.email, this.getSenha()) != null) {
this.aluno = (alunoDAO.efetuarLogin(email, senha));
DisciplinaBean disciplinaBean = new DisciplinaBean();
disciplinaBean.setAluno(this.aluno); // nesse ponto e passado o objeto preenchido
return "irCadastroNotas";
} else {
this.setMensagem("Nome e/ou senha inválidos !");
return "naoIrCadastroNotas";
}
}
Bean DisciplinaBean
no set do disciplinaBean
public void setAluno(Aluno aluno) {
JOptionPane.showMessageDialog(null, aluno.getCodigo()); // nesse ponto consigo imprimir so para um teste o codigo do aluno.
this.aluno = aluno;
}
agora dentro do metodo finalizarCadastroNotas, não consigo imprimir o codigo a impressão do codigo e so para fazer um teste pois preciso do codigo que chave primaria de aluno para
gravar na tabela professores
public String finalizarCadastroNotas() throws SQLException, ClassNotFoundException{
JOptionPane.showMessageDialog(null,"teste acesso classe bean discipina"+this.aluno.getCodigo()); // nesse ponto ao executar minha aplicação da nullponter execption
professorDAO.adicionar(discipina.getProfessor());// com o codigo do aluno que chave primaria conseguiria inseri-lo ta tabela professor
disciplinaDAO.adicionar(discipina);
return "finalizaCadAluno";
}
OBS.: o metodos finalzarCadastroNotas está sendo usado pelo meu bean DisciplinaBean:
<h:commandButton value=“Adicionar” action="#{disciplinaBean.finalizarCadastroNotas()}"/>
Pensei eu fazer um BINDING OU ID PARA PEGAR O CODIGO DO ALUNO QUE É CHAVE PRIMARIA E INSERIR NA TABELA PROFESSOR COMO FAÇO ISSO OU TEM UMA MELHOR
SOLUÇÃO HA FAZER???
CLASSE COMPLETA LOGO ABAIXO:
@ManagedBean
@SessionScoped
public class AlunoFaces {
private String email;
private String senha;
private String mensagem;
private Aluno aluno;
AlunoDAO alunoDAO = new AlunoDAO();
CursoDAO cursoDAO = new CursoDAO();
public AlunoFaces() {
}
public String adicionarAluno() {
this.mensagem = null;
this.setAluno(new Aluno());
return "adicionandoAluno";
}
public String finalizarAdicaoAluno() throws SQLException, ClassNotFoundException {
boolean insereCurso = cursoDAO.adicionar(this.getAluno().getCurso());
boolean insereAluno = alunoDAO.adicionar(this.getAluno());
if (insereCurso && insereAluno) {
this.setMensagem("Aluno gravado com sucesso !");
this.aluno = null;
return "alunoAdcionado";
}else{
this.setMensagem("Não foi possível gravar o aluno ! ");
this.aluno = null;
return "alunoAdcionado";
}
}
public String efetuarLogin() throws SQLException, ClassNotFoundException {
if (alunoDAO.efetuarLogin(this.email, this.getSenha()) != null) {
this.aluno = (alunoDAO.efetuarLogin(email, senha)); // retorno o objeto preenchido
DisciplinaBean disciplinaBean = new DisciplinaBean();
disciplinaBean.setAluno(this.aluno); // passo o objeto para o setAluno
return "irCadastroNotas";
} else {
this.setMensagem("Nome e/ou senha inválidos !");
return "naoIrCadastroNotas";
}
}
/**
* @return the nome
*/
public String getEmail() {
return email;
}
/**
* @param nome the nome to set
*/
public void setEmail(String email) {
this.email = email;
}
/**
* @return the senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha the senha to set
*/
public void setSenha(String senha) {
this.senha = senha;
}
/**
* @return the mensagem
*/
public String getMensagem() {
return mensagem;
}
/**
* @param mensagem the mensagem to set
*/
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
/**
* @return the aluno
*/
public Aluno getAluno() {
return aluno;
}
/**
* @param aluno the aluno to set
*/
public void setAluno(Aluno aluno) {
this.aluno = aluno;
this.aluno.setCurso(new Curso());
}
}
--------------------------------------------------------------------------------
public class DisciplinaBean {
private Aluno aluno;
private Disciplina discipina;
ProfessorDAO professorDAO = new ProfessorDAO();
DisciplinaDAO disciplinaDAO = new DisciplinaDAO();
public DisciplinaBean() {
}
public String adicionarDisciplina(){
JOptionPane.showMessageDialog(null,"Teste disciplinaBean");
discipina = new Disciplina();
discipina.setProfessor(new Professor());
discipina.getProfessor().setAluno(new Aluno());
return "cadastroNotas";
}
public String finalizarCadastroNotas() throws SQLException, ClassNotFoundException{
JOptionPane.showMessageDialog(null,"teste acesso classe bean discipina" + this.aluno.getCodigo()); // nesse ponto não imprime o codigo que foi impresso no setAluno? porque?
professorDAO.adicionar(discipina.getProfessor());
disciplinaDAO.adicionar(discipina);
return "finalizaCadAluno";
}
/**
* @return the discipina
*/
public Disciplina getDiscipina() {
return discipina;
}
/**
* @param discipina the discipina to set
*/
public void setDiscipina(Disciplina discipina) {
this.discipina = discipina;
}
/**
* @return the aluno
*/
public Aluno getAluno() {
return aluno;
}
/**
* @param aluno the aluno to set
*/
public void setAluno(Aluno aluno) {
JOptionPane.showMessageDialog(null, aluno.getCodigo()); // setAluno aqui eu imprimo para fazer um teste e imprime o codigo que é chave primária
this.aluno = aluno; // o objeto da classe disciplinaBean referencia o mesmo objeto, ambos estão preenchidos.
}
}