Buscar um contato pelo nome e cpf(filtro) JSTL

1 resposta
LipeJava

Bem pessoal!

Estou precisando fazer uma busca(filtro) por nome e cpf.

public class Contato {

    private String nome;
    private long cpf;
    
    setters and getters

Ai minha index, parte onde digita a busca

<h2>Buscar um Contato:</h2>
        <form action="buscarContato.jsp" method="POST">
           Nome: <input type="text" name="nome" ><br/>
           CPF: <input type="text" name="cpf" ><br/>
           <input type="submit" value="Buscar">
        </form>

e por fim a buscarContato.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Buscar contato</title>
    </head>
    <body>
        <h2>Resultado da busca:</h2>
        <jsp:useBean id="lista" class="java.util.ArrayList" scope="application" />
        <jsp:useBean id="contato" class="modelo.Contato" scope="request"/>
        <jsp:setProperty name="contato" property="*"/>

        <c:if test="${not empty param.cpf}">
                <%
                     int cli = lista.indexOf(contato);
                     if (cli >= 0) {
                          session.setAttribute("c", lista.get(cli));
                     } else {
                          session.removeAttribute("c");
                     }
                %>
                <c:choose>
                    <c:when test="${empty c}">
                        Cliente nao encontrado..<br>
                    </c:when>
                    <c:when test="${not empty c}">
                        <table>
                        <tr>
                            <td>${c.cpf}</td>
                            <td>${c.nome}</td>
                            <td>${c.rg}</td>
                            <td><fmt:formatDate value="${c.dataNascimento}" pattern="dd/MM/yyyy"/></td>
                            <td>${c.sexo}</td>
                            <td>${c.rua}</td>
                            <td>${c.numero}</td>
                            <td>${c.bairro}</td>
                            <td>${c.cidade}</td>
                            <td>${c.estado}</td>
                            <td>
                                <form action="editar.jsp" method="POST">
                                    <input type="hidden" name="cpf" value="${c.cpf}"/>
                                    <input type="submit" value="Editar"/>
                                </form>
                            </td>
                            <td>
                                <form action="remover.jsp" method="POST">
                                    <input type="hidden" name="cpf" value="${c.cpf}"/>
                                    <input type="submit" value="Excluir"/>
                                </form>
                            </td>
                        </tr>
                    </table>
                </c:when>
            </c:choose>

        </c:if>



        <%-- _____________________LISTA PELO NOME______________________ --%>
        <c:if test="${not empty param.nome}">
            <%
                        String nomePesquisa = request.getParameter("nome");
                        ArrayList res = new ArrayList();
                        for (int i = 0; i < lista.size(); i++) {
                            Contato c = (Contato) lista.get(i);
                            if (c.getNome().startsWith(nomePesquisa)) {
                                res.add(c);
                            }
                        }

                        request.setAttribute("cli", res);
            %>
            <c:choose>
                <c:when test="${empty cli}">
                    Cliente nao encontrado..<br>
                </c:when>
                <c:when test="${not empty cli}">
                    <c:forEach items="${cli}" var="c">

                        <table border="1">
                            <tr>
                                <td>${c.cpf}</td>
                                <td>${c.nome}</td>
                                <td>${c.rg}</td>
                                <td><fmt:formatDate value="${c.dataNascimento}" pattern="dd/MM/yyyy"/></td>
                                <td>${c.sexo}</td>
                                <td>${c.rua}</td>
                                <td>${c.numero}</td>
                                <td>${c.bairro}</td>
                                <td>${c.cidade}</td>
                                <td>${c.estado}</td>
                                <td>
                                    <form action="editar.jsp" method="POST">
                                        <input type="hidden" name="cpf" value="${c.cpf}"/>
                                        <input type="submit" value="Editar"/>
                                    </form>
                                </td>
                                <td>
                                    <form action="remover.jsp" method="POST">
                                        <input type="hidden" name="cpf" value="${c.cpf}"/>
                                        <input type="submit" value="Excluir"/>
                                    </form>
                                </td>
                            </tr>
                        </table>
                    </c:forEach>
                </c:when>
            </c:choose>
        </c:if>  
        <br><a href="index.jsp">Voltar</a>
        <c:if test="${empty lista}">
            Não possui nenhum cliente cadastrado
        </c:if>
    </body>
</html>

Se alguem puder me ajudar!
Obrigado

1 Resposta

LipeJava

Consegui resolver- caso passe algum adm pode fexar - Abrass a todos!

Criado 8 de setembro de 2010
Ultima resposta 9 de set. de 2010
Respostas 1
Participantes 1