Boa tarde gente, seguir o passo a passo do instrutor mas não obtive sucesso, então resolvi criar uma solução e aproveitar para usar o LocalDate. eu percebi que la no static do Banco criado pelo professor não era add nenhuma data, e no vídeo não vi ele fazendo isso, e um dos erros que mostrava na minha linha de erro era que esse campo era nulo.
Bom, dito tudo isso eu resolvi me desafiar e fiz o seguinte código
Classe Banco, que vai fazer aqueles cadastros automáticos caso não seja inserido nada.
package br.com.alura.servlet;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
public class Banco {
private static List<Empresa> lista = new ArrayList<Empresa>();
static {
LocalDate enviandoData = LocalDate.of(1992, 02, 5);
Empresa empresa = new Empresa();
empresa.setNome("Alura");
empresa.setDataCriacao(enviandoData);
Empresa empresa2 = new Empresa();
empresa2.setNome("Caelum");
empresa2.setDataCriacao(enviandoData);
lista.add(empresa);
lista.add(empresa2);
}
public void adicionar(Empresa empresa) {
lista.add(empresa);
}
public static List<Empresa> getLista(){
return Banco.lista;
}
}
Classe novaEmpresaServlet, onde vamos receber o código do formulário e mandar para página de empresas criadas.
package br.com.alura.servlet;
import java.io.IOException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
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;
/**
* Servlet implementation class novaEmpresaServlet
*/
@WebServlet("/novaEmpresaServlet")
public class novaEmpresaServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nomeFormulario = request.getParameter("nome");
String dataFormulario = request.getParameter("data");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate dataEmFormatoData = LocalDate.parse(dataFormulario,formatter);
Empresa empresa = new Empresa();
empresa.setNome(nomeFormulario);
empresa.setDataCriacao(dataEmFormatoData);
Banco banco = new Banco();
banco.adicionar(empresa);
request.setAttribute("empresa", empresa.getNome());
RequestDispatcher rd = request.getRequestDispatcher("/novaEmpresaCriada.jsp");
rd.forward(request, response);
}
}
Classe Empresa, onde criamos o atributo com LocalDate e os métodos que vão receber essa data, tratar e devolver através de um get
package br.com.alura.servlet;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Empresa {
private int id;
private String nome;
private LocalDate dataCriacao;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setDataCriacao(LocalDate dataCriacao) {
this.dataCriacao = dataCriacao;
}
private LocalDate getDataCriacaoFormatoPadrao() {
return dataCriacao;
}
public String getDataCriacao() {
LocalDate dataEmTexto = getDataCriacaoFormatoPadrao();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String dataConversao = dataEmTexto.format(formatter);
return dataConversao;
}
}
Bom gente o intuito da criação foi acompanhar o curso mesmo, pois não conseguir seguir em frente com o erro no meu código, como o código acima vai gerar o mesmo resultado resolvi fazer, infelizmente não é necessário usar o fmt na página jsp pois o código já vai em formato de texto