Oie Bruno, tudo bem contigo?
Segue o código com o acrescimo do CNPJ:
NovaEmpresaServlet:
@WebServlet("/novaEmpresa")
public class NovaEmpresaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("Cadastrando nova empresa");
String nomeEmpresa = request.getParameter("nome");
String paramDataEmpresa = request.getParameter("data");
String paramCnpj = request.getParameter("cnpj"); // recebe o valor do cnpj e salva em uma variável
Date dataAbertura = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dataAbertura = sdf.parse(paramDataEmpresa);
} catch (ParseException e) {
throw new ServletException(e);
}
Empresa empresa = new Empresa();
empresa.setNome(nomeEmpresa);
empresa.setDataAbertura(dataAbertura);
empresa.setCnpj(paramCnpj); // guarda o valor do cnpj dentro do atributo de um objeto empresa
Banco banco = new Banco();
banco.adiciona(empresa);
request.setAttribute("empresa", empresa.getNome());
response.sendRedirect("listaEmpresas");
}
}
formNovaEmpresa.jsp:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:url value="/novaEmpresa" var="linkServletNovaEmpresa"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="${linkServletNovaEmpresa }" method="post">
Nome: <input type="text" name="nome" />
CNPJ: <input type="text" name="cnpj">
Data Abertura: <input type="text" name="data" />
<input type="submit" />
</form>
</body>
</html>
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" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Java Standard Taglib</title>
</head>
<body>
<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 } - ${empresa.cnpj } - <fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>
<a href="/gerenciador/mostraEmpresa?id=${empresa.id }">edita</a>
<a href="/gerenciador/removeEmpresa?id=${empresa.id }">remove</a>
</li>
</c:forEach>
</ul>
</body>
</html>
formAlteraEmpresa.jsp:
<%@ 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="/alteraEmpresa" var="linkServletNovaEmpresa"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="${linkServletNovaEmpresa }" method="post">
Nome: <input type="text" name="nome" value="${empresa.nome }" />
Cnpj: <input type="text" name="cpng" value="${empresa.cnpj }" readonly>
Data Abertura: <input type="text" name="data" value="<fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>" />
<input type="hidden" name="id" value="${empresa.id }">
<input type="submit" />
</form>
</body>
</html>
O "readonly" colocado dentro da tag "input" do cnpj serve para o usuário só conseguir visualizar o valor e não alterar.
Fico a disposição para tirar qualquer outra dúvida :)
Bons estudos!