Implementar filtro de pesquisa na JSP

4 respostas
L

Pessoal;

Eu tenho a seguinte JSP que inicializa com todos os dados do BD numa grd de pesquisa, só que pretendo implementar um filtro de pesquisa.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    
    <%@ page import="java.util.*, dao.*, jdbc.*" %>
    
<!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=ISO-8859-1">
<title>Pesquisa Polo</title>
</head>
<body leftmargin="0" topmargin="0" onload="init('tblGrid')">

	<form action="PesquisaPolo" method="POST">
		
		UF<select size="1" name="uf">
		<option value="selecione">Selecione</option>
		<option value="sp">SP</option>
		<option value="rj">RJ</option>
		</select>
		<br /> <br />
		
		Polo<input type="text" name="polo">
		<br /> <br />
		
		Exibir registros<select size="1" name="ExibeRegistro">
		<option selected value="ativo">Ativo</option>
		<option value="inativo">Inativo</option>
		<option value="todos">Todos</option>
		</select>
		<br /> <br />
		
		<input type="submit" value="Pesquisar" >
		</form>
		<br /> <br />
		
		
		<table bordercolor="gray" border="1px" cellpadding="0" cellspacing="0"
      id="tblGrid" name="tblGrid" style="position:relative" align="center">
		<thead>
		<%
			
			PoloDAO dao = new PoloDAO();
			List<Polo> listPolo = dao.getLista();
			
			%>
			<tr>
				<td align="center" bgcolor="gray" width="100">UF</td>
				<td align="center" bgcolor="gray" width="400">Polo</td>
				<td align="center" bgcolor="gray" width="100">Status</td>
			</tr>
			</thead>
			<tbody>
			<%
			
			for(Polo polo : listPolo ){
				%>

			<tr>
				<td><%=polo.getUf() %></td>
				<td><%=polo.getPolo() %></td>
				<td><%=polo.getStatus() %></td>
			</tr>
			<%
			}			
			%>
			</tbody>
		</table>
		
		
</body>
</html>

Ao clicar em “Pesquisar” na JSP acima, os dados do filtro de pesquisa vão para uma Servlet, que atribui os dados para a classe Polo (que contém os métodos getters e setters) e chama o objeto do meu DAO para realizar a pesquisa com filtro.

Segue minha Servlet e o método de pesquisa no meu DAO:

Servlet:

import java.io.IOException;

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

import dao.PoloDAO;

import jdbc.Polo;


 public class PesquisaPolo extends HttpServlet {
   
	 protected void service (HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException{
		 
		 
		 String uf = request.getParameter("uf");
		 String nome = request.getParameter("polo");
		 String exibeRegistro = request.getParameter("ExibeRegistro");
		 	 
		 
		 Polo polo = new Polo();
		 
		 polo.setUf(uf);
		 polo.setPolo(nome);
		 polo.setStatus(exibeRegistro);
		 
		 PoloDAO dao = new PoloDAO();
		 dao.getFiltro(polo);

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

Método na classe DAO

public List<Polo> getFiltro(Polo polo){
	
	
	String exibeTodos = "select uf_polo, nome_polo, status from tab_polo where status =1;";
	
	String sql = null; 
	

		try{
			List<Polo> ListPolo = new ArrayList<Polo>();
			// vou terminar o restante da condição (minhas opções de filtros)

			if(polo.getUf().equals("selecione") && polo.getPolo().equals("") 
					&& polo.getStatus().equals("ativo")){
			
				sql = exibeTodos;
			}
			
			PreparedStatement stmt = this.connection.prepareStatement(sql);
			ResultSet rs = stmt.executeQuery();
			
			while(rs.next()){
				
				Polo ObjPolo = new Polo();
				ObjPolo.setUf(rs.getString("uf_polo"));
				ObjPolo.setPolo(rs.getString("nome_polo"));
				ObjPolo.setStatus(rs.getString("status"));
				
				ListPolo.add(ObjPolo);
			}
			rs.close();
			stmt.close();
			
			return ListPolo;
		}catch(SQLException e){
			throw new RuntimeException(e);
		}
}
}

Agora, como eu poderia adicionar esse método na JSP, quando eu clico em “Pesquisar”.

4 Respostas

R

Crie um input do tipo button que ao clicá-lo o seu metodo doPost sera chamado.

L

então eu devo alterar meu botão “Pesquisar” para um tipo “Button”, é isso ?

Obs: Minha servlet retorna para a página JSP, então ao retornar a página JSP meu filtro não seria ignorado, já que na JSP todos os dados são inicializados ??

R

Desculpe, nao vi o codigo do seu botao na JSP. Pode deixar do mesmo jeito.

Voce tera que implementar o metodo doPost na sua servlet.

Veja esse exemplo: http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/servlet.html

L

Sem problemas…
Vou estudar isso, e tentar implementar !!

Qualquer coisa posto aqui.

Obrigado

Criado 20 de dezembro de 2010
Ultima resposta 20 de dez. de 2010
Respostas 4
Participantes 2