Pessoal boa noite, tudo bem?
Com intuito de aprimorar meus conhecimentos em Java para Web, estou fazendo um pente-fino nos desafios da apostila FJ21. Travei em uma situação que pode ser simples, mais que pode me ajudar futuramente no contexto Servlets-JSP. No caso, o exercício pede para que eu centralize na classe Controladora, a tarefa de redirecionar as páginas através do RequestDispatcher a partir de uma String vinda da classe de Lógica que especifica a qual JSP deve ser encaminhada. Veja o que eu fiz na tentativa de implementar a solução:
Trecho final de uma das minhas classes de Lógica que cria um atributo dentro do método de serviço (Removi a implementação do RequestDispatcher local que funciona sem problemas):
...
String url = "/lista-contatos-elegante.jsp";
request.setAttribute("url", url);
}
}
Classe Controladora (Bloco do Instanciamento da Servlet conforme a Lógica e a tentativa de redirecionamento):
....
try {
Class classe = Class.forName(nomeClasse);
Logica logica = (Logica) classe.newInstance();
logica.executa(request, response);
String param = (String) request.getAttribute("url");
RequestDispatcher rd = request.getRequestDispatcher(param);
rd.forward(request, response);
} catch (Exception e) {
throw new ServletException("A lógica de negócios causou uma exceção!", e);
}
Desta forma acima não estou conseguindo implementar essa lógica, pois retorna erro:
exception
javax.servlet.ServletException: A lógica de negócios causou uma exceção!
br.com.caelum.agenda.servlet.ServletController.service(ServletController.java:27)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.NullPointerException
br.com.caelum.agenda.servlet.ServletController.service(ServletController.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Vocês poderiam me ajudar a resolver o meu problema?
Obrigado!