2
respostas

type="date" ao invés de type"text"

E se eu quisesse usar o date no type ao invés de text, desta forma aqui:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:url value="/novaempresa" var="linkNovaEmpresa"/>

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>    
    <form action="${linkNovaEmpresa}" method="post">
        Nome: <input type="text" name="nome"/>
        Data: <input type="date" name="data"/>
        <input type="submit"/>
    </form>
</body>
</html>

O que eu precisaria mudar no código da Lista e do Servlet para funcionar:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
<%@ page import="java.util.List, br.com.alura.gerenciador.servlet.modelo.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>
        <h1>Lista de empresas:</h1>
        <br/>
        <ul>
            <c:forEach items="${empresas}" var="empresa">

                <li>${empresa.nome} -- <fmt:formatDate value="${empresa.data}" pattern="dd/MM/yyyy"/></li>

            </c:forEach>


        </ul>

    </body>
</html>
package br.com.alura.gerenciador.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

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.modelo.Banco;
import br.com.alura.gerenciador.servlet.modelo.Empresa;

/**
 * Servlet implementation class EmpresaServlet
 */
@WebServlet("/novaempresa")
public class EmpresaServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();

        String nomeEmpresa = request.getParameter("nome");
        String dataEmpresaPatter = request.getParameter("data");    

        Date dataEmpresa = null;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            dataEmpresa = sdf.parse(dataEmpresaPatter);
        } catch (ParseException e) {
            throw new ServletException(e);
        }

        Empresa empresa = new Empresa();
        empresa.setNome(nomeEmpresa);
        empresa.setData(dataEmpresa);

        Banco banco = new Banco();
        banco.adiciona(empresa);

        //chama JSP
        RequestDispatcher rd = request.getRequestDispatcher("/empresaenviada.jsp");
        request.setAttribute("empresa", empresa.getNome());
        rd.forward(request, response);
    }

}

Obrigada :)

2 respostas

Boa dica Dyane! Muito obrigado

Foi uma pergunta. Preciso saber como o meu código ficaria se eu mudasse o type para date, pois a princípio é ensinado com type text. Pesquisei na internet e não encontrei uma resolução clara. Alguém poderia ajudar ?

Obrigada.