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

Busca sem efeito na troca de parâmetros

Minha busca não muda quando troco o parâmetro "filtro" em:

String filtro = req.getParameter("filtro");

por outra String. Ela traz sempre todos os valores da lista. Debugando meu código eu percebi que o valor atribuído à variável filtro é sempre null. Alguém teve este problema ou saberia me explicar o porquê?

Obs.: modificando o parametro em:

Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);

a busca funciona normalmente.

4 respostas

Oi Paulo, tudo bem?

Provavelmente você não está passando o parâmetro "filtro" corretamente. Verifica se lá na barra do navegador, quando você acessa o endereço em questão, se o argumento está sendo passado.

O engraçado, Alberto, é que mesmo sendo um get, quando passo "localhost:8080/gerenciador/busca" ele para por aí e não mostra os parâmetros da busca, mesmo no cenário de êxito, quando modifico o parâmetro na linha:

Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);

Segue meu código:

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        PrintWriter writer = resp.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("<p>Resultado da Busca: </p></br>");

        String filtro = req.getParameter("filtro");

        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);

        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" + empresa.getId() + " : " + empresa.getNome() + "</li>");
        }
        writer.println("</ul>");

        writer.println("</body>");
        writer.println("</html>");
    }
solução!

Ok. Resolvi o problema. O argumento ficou implícito na url (oq me gerou a dúvida inicial) e a String passada por parâmetro no atributo "filtro" faz menção ao nome do atributo na url e não ao valor desse atributo. Foi mais um erro de entendimento que de execução. De qualquer forma, obrigado, Alberto, pela atenção.

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        PrintWriter writer = resp.getWriter();
        writer.println("<html>");
        writer.println("<body>");
        writer.println("<p>Resultado da Busca: </p></br>");

        String filtro = req.getParameter("filtro");

        Collection<Empresa> empresas = new EmpresaDAO().buscaPorSimilaridade(filtro);

        writer.println("<ul>");
        for (Empresa empresa : empresas) {
            writer.println("<li>" + empresa.getId() + " : " + empresa.getNome() + "</li>");
        }
        writer.println("</ul>");

        writer.println("</body>");
        writer.println("</html>");
    }