Olá, estou tendo problemas com a variavel "empresa", quando tento obter o nome da mesma através do método getNome, ele me retorna null, e não o nome da empresa como deveria ser. Por causa disso, estou caindo na NullPointerException quando tento acessar a url "/mostraEmpresa". Porém, não consigo enxergar nenhum erro em meu código, alguém pode me ajudar?
MostraEmpresaServlet
package br.com.douglas.gerenciador.servlets;
@WebServlet("/mostraEmpresa")
public class MostraEmpresaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
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.mostraEmpresa(id);
System.out.println(empresa.getNome());
request.setAttribute("empresa", empresa);
RequestDispatcher rd = request.getRequestDispatcher("/formAlteraEmpresa.jsp");
rd.forward(request, response);
}
}
formAlteraEmpresa
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<c:url value="/novaEmpresa" var= "linkNovaEmpresa"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Cadastro</title>
</head>
<body>
<h1>Insira as novas informações da sua empresa.:</h1>
<form action="${linkNovaEmpresa}" method="post">
<p>Nome da Empresa: <input type="text" name="nome" value="${empresa.nome}"></p>
<p>Data de Abertura: <input type="text" name="data" value="<fmt:formatDate value="${empresa.dataAbertura}" pattern="dd/MM/yyyy"/>"></p>
<input type="submit" >
</form>
</body>
Banco
public class Banco {
private static List<Empresa> lista = new ArrayList<>();
private static Integer id = 1;
static {
Empresa empresa = new Empresa();
empresa.setId(id++);
empresa.setNome("Los Pollos Hermanos");
Empresa empresa2 = new Empresa();
empresa2.setId(id++);
empresa2.setNome("Aperture Science");
lista.add(empresa);
lista.add(empresa2);
}
public void adiciona(Empresa empresa) {
empresa.setId(Banco.id++);
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 mostraEmpresa(Integer id2) {
for (Empresa empresa : lista) {
if (empresa.getId() == id) {
return empresa;
}
}
return null;
}
}
Empresa
public class Empresa {
private Integer id;
private String nome;
private Date dataAbertura = new Date();
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Date getDataAbertura() {
return dataAbertura;
}
public void setDataAbertura(Date dataAbertura) {
this.dataAbertura = dataAbertura;
}
}
Omiti os imports porque não dava pra colocar aqui.