Ao tentar clicar no botão submit do formulário que altera a empresa essa mensagem:
Minha classe AlteraEmpresa abaixo (idêntica do professor)
package br.com.alura.gerenciador.acao;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Empresa;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class AlteraEmpresa {
public String executa(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nomeEmpresa = request.getParameter("nome");
String paramDataEmpresa = request.getParameter("data");
String paramId = request.getParameter("id");
Integer id = Integer.valueOf(paramId);
System.out.println("acao altera empresa" + id);
Date dataAbertura = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dataAbertura = sdf.parse(paramDataEmpresa);
} catch (ParseException e) {
throw new ServletException(e);
}
System.out.println(id);
Banco banco = new Banco();
Empresa empresa = banco.buscaEmpresaPelaId(id);
empresa.setNome(nomeEmpresa);
empresa.setDataAbertura(dataAbertura);
return "redirect:entrada?acao=ListaEmpresas";
}
}
A linha 21 que está dando erro seria:
Integer id = Integer.valueOf(paramId);
o meu servlet está desta forma:
package br.com.alura.gerenciador;
import java.io.IOException;
import br.com.alura.gerenciador.acao.AlteraEmpresa;
import br.com.alura.gerenciador.acao.ListaEmpresas;
import br.com.alura.gerenciador.acao.MostraEmpresa;
import br.com.alura.gerenciador.acao.NovaEmpresa;
import br.com.alura.gerenciador.acao.RemoveEmpresa;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Servlet implementation class UnacaEntradaServlet
*/
// --> /entrada
public class UnacaEntradaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String nome = null;
String paraAcao = request.getParameter("acao");
if (paraAcao.equals("ListaEmpresas")) {
ListaEmpresas acao = new ListaEmpresas();
nome = acao.executa(request, response);
} else if (paraAcao.equals("RemoveEmpresa")) {
RemoveEmpresa acao = new RemoveEmpresa();
nome = acao.executa(request, response);
} else if (paraAcao.equals("MostraEmpresa")) {
MostraEmpresa acao = new MostraEmpresa();
nome = acao.executa(request, response);
}
else if (paraAcao.equals("AlteraEmpresa")) {
AlteraEmpresa acao = new AlteraEmpresa();
nome = acao.executa(request, response);
}
else if (paraAcao.equals("NovaEmpresa")) {
NovaEmpresa acao = new NovaEmpresa();
nome = acao.executa(request, response);
}
String[] tipoEEndereco = nome.split(":");
if (tipoEEndereco[0].equals("foward")) {
RequestDispatcher rd = request.getRequestDispatcher(tipoEEndereco[1]);
rd.forward(request, response);
} else {
response.sendRedirect(tipoEEndereco[1]);
}
}
}
Percebi que quando o professor está no ListaEmpresas e clica no link Altera o formulário que se abre, o formAlteraEmpresa já carrega com o nome e a data da empresa inserida no campo de texto porém a minha não. Meu jsp está igual o dele:
Alguém pode me ajudar para eu continuar o curso?