Estou desenvolvendo um programa utilizando uma camada de Persistência Eclipse Link da especificação JPA 2.1 do Java. O erro ocorre na operação que antecede o “Editar”. A função responsável por isso funciona apenas em classes que no BD, não guardam chave estrangeira.
A seguinte mensagem é exibida: _org.apache.jasper.JasperException: java.lang.IllegalArgumentException: Cannot convert model.Curso@2080cec of type class model.Curso to class java.lang.Long
O seguinte código de Preparar esta Operação está logo abaixo, . O erro impede o carregamento da página. A classe Aluno se relaciona com a classe Curso, a qual tem uma chave estrangeira na classe Aluno. A operação “Editar” do Curso funciona normalmente.
O curioso é que trocando “request.setAttribute(“cursos”, CursoDAO.getInstance().obterCursos());” substituindo “cursos” por apenas “curso”, a tela carrega e o editar funciona, porém não carrega na combo box e nem na memória todos os cursos para o usuário editar. E se eu colocar os dois Request dá ainda mais erros.
public void prepararOperacao(HttpServletRequest request, HttpServletResponse response) throws SQLException, ServletException {
try {
String operacao = request.getParameter("operacao");
request.setAttribute("operacao", operacao);
request.setAttribute("cursos", CursoDAO.getInstance().obterCursos());
request.setAttribute("alunos", AlunoDAO.getInstance().obterAlunos());
if(!operacao.equals("Incluir")){
int matricula = Integer.parseInt(request.getParameter("matricula"));
aluno = AlunoDAO.getInstance().obterAluno(matricula);
request.setAttribute("aluno", aluno);
}
RequestDispatcher view = request.getRequestDispatcher("/cadastraAluno.jsp");
view.forward(request, response);
} catch (ServletException ex) {
throw ex;
} catch (IOException ex) {
throw new ServletException(ex);
}
}
Será um erro no JSP que já verifiquei várias vezes? O que posso fazer?