Al momento de cargar la pagina jsp me sale un error porque la lista esta null. en la clase DB esta lo siguiente:
private static List<Empresa> listaEmpresas = new ArrayList<>();
//lo que hace es una ve que incia la clase ya inicia lo que coloquemos aqui adentro
static {
Empresa empresa = new Empresa();
empresa.setNombre("alura");
Empresa empresa2 = new Empresa();
empresa2.setNombre("HBO");
listaEmpresas.add(empresa);
listaEmpresas.add(empresa2);
}
public void agregarEmpresa(Empresa empresa) {
DB.listaEmpresas.add(empresa);
}
public List<Empresa> getEmpresas(){
return DB.listaEmpresas;
}
en mi clase ListaEmpresasServlet donde envio la lista de empresas a mi archivo jsp esta lo siguiente:
public class ListaEmpresasServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DB baseDeDatos = new DB();
List<Empresa> listaEmpresas = baseDeDatos.getEmpresas();
request.setAttribute("empresas", listaEmpresas);
RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
rd.forward(request, response);
}
}
En mi archivo .jsp llamado listaEmpresas.jsp esta lo siguiente:
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="java.util.List"%>
<%@page import="com.alura.gerenciador.servlet.Empresa"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Lista de empresas: <br />
<ul>
<%
List<Empresa> lista = (List<Empresa>)request.getAttribute("empresas");
for (Empresa empresa : lista) {
%>
<li><%= empresa.getNombre() %></li>
<%
}
%>
</ul>
</body>
</html>
me da el siguiente error:
Tipo Informe de Excepción
mensaje Ha sucedido una excepción al procesar la página JSP [/listaEmpresas.jsp] en línea [17]
Descripción El servidor encontró un error interno que hizo que no pudiera rellenar este requerimiento.
excepción
org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP [/listaEmpresas.jsp] en línea [17]
14: <ul>
15: <%
16: List<Empresa> lista = (List<Empresa>)request.getAttribute("empresas");
17: for (Empresa empresa : lista) {
18: %>
19: <li><%= empresa.getNombre() %></li>
20: <%
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:599)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:488)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
causa raíz
java.lang.NullPointerException: Cannot invoke "java.util.List.iterator()" because "lista" is null
org.apache.jsp.listaEmpresas_jsp._jspService(listaEmpresas_jsp.java:141)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
nota La traza completa de la causa de este error se encuentra en los archivos de registro del servidor.
me sale que la lista esta null pero en la clase DB ya cargo los datos no se que error estoy cometiendo o a que se debe si me pueden ayudar muchas gracias de ante mano por su ayuda.