Olá galera,
Eu tentei usar o atributo "date" no lugar do "type" e achei bem mais intuitivo, mas ao tentar rodar ocorre a exception relacionado ao parse, assim creio que o valor retornado do formulário não atende os parâmetros definidos. Como proceder nesse caso?
Formulário JSP:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="format"%>
<core:url value="/NovaEmpresa" var="linkServletNovaEmpresa" />
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Cadastro de empresas</title>
</head>
<body>
<form action="${linkServletNovaEmpresa}" method="post">
Nome da Empresa: <input type="text" name="nome"/>
Data de abertura: <input type="date" name="data"/>
<input type="submit" />
</form>
</body>
</html>
Servlet:
package br.com.alura.gerenciador.novaempresa;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.security.auth.message.callback.PrivateKeyCallback.Request;
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;
import br.com.alura.gerenciador.servlet.Empresa;
import br.com.alura.gerenciador.servlet.Banco;
/**
* Servlet implementation class NovaEmpresa
*/
@WebServlet("/NovaEmpresa")
public class NovaEmpresa extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Cadastrando uma nova empresa");
String nomeEmpresa = req.getParameter("nome");
String paramDateEmpresa = req.getParameter("data");
// SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy");
Date dataAbertura = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
dataAbertura = sdf.parse(paramDateEmpresa);
} catch (ParseException e) {
throw new ServletException(e + "Parse de data Falho!");
}
Empresa empresa = new Empresa();
empresa.setNome(nomeEmpresa);
empresa.setDataAbertura(dataAbertura);
Banco banco = new Banco();
banco.adicionaEmpresa(empresa);
// PrintWriter out = resp.getWriter();
// out.println("<html><body>Empresa " + nomeEmpresa + " cadastrada com sucesso!</body></html>");
// Chamando o JSP
RequestDispatcher rd = req.getRequestDispatcher("/NovaEmpresaCriada.jsp");
req.setAttribute("empresa", empresa.getNome());
rd.forward(req, resp);
}
}