Depois que eu removo a empresa, ao tentar ir para a página http://localhost:8080/gerenciador/mostraEmpresa, aparece a mensagem: HTTP Status 500 – Internal Server Error.
listaEmpresas.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.util.List, br.com.alura.gerenciador.servlet.Empresa"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:if test="${not empty empresa }">
Empresa ${ empresa } cadastrada com sucesso!
</c:if>
Lista de Empresas: <br />
<ul>
<c:forEach items="${empresas}" var="empresa">
<li>
${empresa.nome } - <fmt:formatDate value="${empresa.dataAbertura }"/>
<a href="/gerenciador/mostraEmpresa?id=${empresa.id }">edita</a>
<a href="/gerenciador/removeEmpresa?id=${empresa.id }">remove</a>
</li>
</c:forEach>
</ul>
Banco.java
package br.com.alura.gerenciador.servlet;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
public class Banco {
private static List<Empresa> lista = new ArrayList<>();
private static Integer chaveSequencial = 1;
static {
Empresa empresa = new Empresa();
empresa.setId(chaveSequencial++);
empresa.setNome("Alura");
Empresa empresa2 = new Empresa();
empresa2.setId(chaveSequencial++);
empresa2.setNome("Caelum");
lista.add(empresa);
lista.add(empresa2);
}
public void adiciona(Empresa empresa) {
empresa.setId(Banco.chaveSequencial++);
Banco.lista.add(empresa);
}
public List<Empresa> getEmpresas(){
return Banco.lista;
}
public void removeEmpresa(Integer id) {
Iterator<Empresa> it = lista.iterator();
while(it.hasNext()) {
Empresa emp = it.next();
if(emp.getId() == id) {
it.remove();
}
}
}
public Empresa buscaEmpresaPelaId(Integer id) {
for (Empresa empresa : lista) {
if(empresa.getId() == id) {
return empresa;
}
}
return null;
}
}
MostraEmpresaServlet.java
package br.com.alura.gerenciador.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/**
Servlet implementation class MostraEmpresaServlet */ @WebServlet("/mostraEmpresa") public class MostraEmpresaServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/**
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String paramId = request.getParameter("id"); Integer id = Integer.valueOf(paramId);
Banco banco = new Banco();
Empresa empresa = banco.buscaEmpresaPelaId(id);
System.out.println(empresa.getNome());
response.getWriter().append("Served at: ").append(request.getContextPath());
}
}