Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Minha página não abre (ListaEmpresas) através do "Entrada?acao=ListaEmpresas"

Como estão as classes..

package br.com.alura.gerenciador.acao;

import java.io.IOException; import java.util.List;

import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.modelo.Banco; import br.com.alura.gerenciador.modelo.Empresa;

public class ListaEmpresas {

public void executa (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Banco banco = new Banco();
    List<Empresa> lista = banco.getEmpresas();

    request.setAttribute("empresas", lista);

    RequestDispatcher rd = request.getRequestDispatcher("/listaEmpresas.jsp");
    rd.forward(request, response);
}

}


package br.com.alura.gerenciador.servlet;

import java.io.IOException;

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.acao.AlteraEmpresa; import br.com.alura.gerenciador.acao.ListaEmpresas; import br.com.alura.gerenciador.acao.MostraEmpresas; import br.com.alura.gerenciador.acao.NovaEmpresa; import br.com.alura.gerenciador.acao.RemoveEmpresa;

@WebServlet("/Entrada") public class UnicaEntradaServlet extends HttpServlet { private static final long serialVersionUID = 1L;

protected void service(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String paramAcao = request.getParameter("acao");

    if (paramAcao.equals("ListaEmpresa")) {
        System.out.println("Aqui");
        ListaEmpresas acao = new ListaEmpresas();
        acao.executa(request, response);
    } else if (paramAcao.equals("AlteraEmpresa")) {

        AlteraEmpresa acao = new AlteraEmpresa();
        acao.execute(request, response);
    } else if (paramAcao.equals("MostraEmpresa")) {

        MostraEmpresas acao = new MostraEmpresas();
        acao.executa(request, response);
    } else if (paramAcao.equals("NovaEmpresa")) {

        NovaEmpresa acao = new NovaEmpresa();
        acao.execute(request, response);
    } else if (paramAcao.equals("RemoveEmpresa")) {

        RemoveEmpresa acao = new RemoveEmpresa();
        acao.execute(request, response);
    }

}

}


<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<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 } - <fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/> 
            <a href="/gerenciador/Entrada?acao=MostraEmpresa&id=${empresa.id }">editar</a>
            <a href="/gerenciador/Entrada?acao=RemoveEmpresa&id=${empresa.id }">remove</a>
        </li>
    </c:forEach>
</ul>
7 respostas

Ola tudo bem? Poderia dizer qual o erro que esta acontecendo? Pois utilizando sua estrutura, esta funcionando corretamente, acabei de fazer alguns testes, você esta tendo um 404? Existe algum erro no console?

Fala, Allan ! Mano, simplesmente nada acontece. Sem erros ou quaisquer mensagens. Fica a tela simplesmente branca..

solução!

Olá Tadeu!

Será que está dando problema com "Empresa" no singular e "Empresas" no plural?

Olha, de acordo com seu titulo você está usando:

Entrada?acao=ListaEmpresas

Mas o seu if está:

if (paramAcao.equals("ListaEmpresa"))

Aguardo seu retorno! :D

Provavelmente você tem dados no banco certo? Faça um teste, crie um novo JSP coloque alguma info tipo um OlaMundo e no seu RequestDispatcher chamar esse cara para ver se aparece algo. Você sabe trabalhar com o Debugger? Eu recomendaria colocar um breakpoint no seu codigo no inicio, dentro do metodo service e ir seguindo para ver onde para.

Boa tarde, Tadeu! Como vai?

Se na url vc está escrevendo acao=ListaEmpresas então o que deve estar acontecendo é justamente o que o Guilherme Tadeu falou! Dá uma olhada na resposta dele e veja se corrigindo a url para acao=ListaEmpresa, no singular, resolve o seu problema!

Qualquer coisa é só falar!

Aguardo o seu retorno para juntos chegarmos à luz do conhecimento!

Grande abraço e bons estudos, meu aluno!

Perdão pela demora, amigos. Allan, foi realmente o que o Gabriel disse. O Guilherme Tadeu foi cirúrgico nessa.. O erro era apenas este citado por ele mesmo.. Uma falta de atenção deste quem vos escreve. Resolvido pessoal, obrigado a todos !!

Por nada, Tadeu! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos, meu aluno!