Listar todos os produtos na Web

4 respostas
E

Boa tarde pessoal,
estou iniciando minha caminhada no java… estou fazendo um programas de cadastro,inclusão e pesquisa de plantas medicinais,que foi até um exemplo legal que vi na web…
fiz a minha classe plantas,minha conexão e minha pesquisa…
estou com dúvida na parte do servlet… por exemplo… tenho a página que me envia um tipo de pesquisa (1,2ou3) e a string a ser pesquisada.
conforme o código abaixo

Pesquisar por: Nome Vulgar Nome Científico Uso Popular

fiz esse pesquisaPlantaServlet que irá selecionar os dados

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException{

response.setContentType(text/plain);

String nomePesq = request.getParameter(nomePesq);

String tipoPesq = request.getParameter(tipoPesq);

try{

if(tipoPesq.equals(1)){

PlantasDAO plantas = new PlantasDB();

List listPlantas = plantas.getAllPlantas();

RequestDispatcher rd =   request.getRequestDispatcher("/farmacia/plantaCadastrada.jsp");

rd.forward(request,response);

}else

if(tipoPesq.equals(2)){

PlantasDAO plantas = new PlantasDB();

List listPlantas = plantas.getAllPlantas();

RequestDispatcher rd = request.getRequestDispatcher("/farmacia/plantaCadastrada.jsp");

rd.forward(request,response);

}else

if(tipoPesq.equals(3)){

PlantasDAO plantas = new PlantasDB();

List listPlantas = plantas.getAllPlantas();

RequestDispatcher rd = request.getRequestDispatcher("/farmacia/plantaCadastrada.jsp");

rd.forward(request,response);

}
}catch(FarmaciaException e){
	e.printStackTrace();
	RequestDispatcher rd = request.getRequestDispatcher("/farmacia/plantaCadastrada.jsp");
	rd.forward(request,response);
	}
}

Como ainda não fiz as sql’s estou mandando todos fazer a mesma sql (isso é tranquilo)…
mas aí surge a grande dúvida como jogar o resultado dessa pesquisa numa página web obedecendo o mvc??
a pagina seria essa…

Resultado da Pesquisa
Resultado da Pesquisa
Nome Popular Descrição Foto

queria saber se vcs podem me ajudar nessa…
o que não ficou claro para mim é como vou pegar o resultado do meu servlet?? Vou ter que jogá-lo num contexto??
context.setAttribute(“PesquisaPlantas”, ???);

obrigado

4 Respostas

Pedrosa

Jogue o resultado do método por request ou session e use uma taglib para montar sua lista.

request.setAttribute("plantas",plantas.getAllPlantas());

Não reinvente a roda use essa taglib para suas paginações:

http://displaytag.homeip.net/displaytag-examples-1.1/example-pse.jsp

M

Veja o exemplo abaixo:

no seu DAO implemente um método parecido:

public ArrayList listarCurso(VOCurso curso){

  Statement  sta = null;
  Connection con = null;
  ResultSet  rs = null;
  ArrayList  array = new ArrayList();
  String     sql = "SELECT cod_curso, "+
                                   " nome_curso "+
	          " FROM Curso ";

    try{
      	con = DAOConexao.getConnection();
      	sta = con.createStatement();
      	rs = sta.executeQuery(sql);

	while(rs.next()){
	       curso = new VOCurso();
	       curso.setCodcurso(rs.getString(1));
	       curso.setNomecurso(rs.getString(2));
	        array.add(curso);
	}
        			
    }
    catch(SQLException sqle){sqle.getMessage();}
    finally{
      	DAOConexao.desalocarRecursos();
    }
    return array;

}

e no seu ACT faça algo assim:

public void controle()  throws IOException, ServletException{
		
String retorno = "";

ArrayList array = new ArrayList();
DAOCurso dao = new DAOCurso();
VOCurso vo = new VOCurso();

String codCurso = request.getParameter("Codcurso");
String nomeCurso = request.getParameter("Nomecurso");
String nameMetodo = "";

if(request.getParameter("metodo")!=null){
      nameMetodo = request.getParameter("metodo");
}

   vo.setCodcurso(codCurso);
   vo.setNomecurso(nomeCurso);
				
   if(nameMetodo.equals("Listar")){
         array = dao.listarCurso(vo);
         retorno = "/curso/listar.jsp";
         request.setAttribute("VOCurso", array);
    }
    else {
	retorno = "/curso/formulario.jsp";
	vo.setMensagem("Primeiro acesso");
	request.setAttribute("VOCurso", vo);
     }
    
      redireciona(retorno);
}

e na sua JSP algo assim:

<%@ taglib uri="/WEB-INF/logic.tld" prefix="logic" %>
<html>
<body>
       <logic:iterate id="listar" name="VOCurso">
	<jsp:getProperty name="listar" property="codcurso"/> - 
	<jsp:getProperty name="listar" property="nomecurso"/><br>
       </logic:iterate>
</body>
</html>
E

Valeu mesmo pessoal…
Obrigado pela força… espero em breve poder estar contribuindo para o fórum

Pedrosa

Lembrando que o exemplo que o amigo citou na parte do logic é usado com o framework struts, caso vc teste ai, não irá funcionar, aparentemente está usando Servlet, como mencionei a taglig já faz as paginações e caso fosse fazer algo mais simples use jstl:

<c:forEach var="contato" items="${contatos}">
	<li>${contato.nome},${contato.email},${contato.endereco}</li>
</c:forEach>
Criado 3 de agosto de 2006
Ultima resposta 3 de ago. de 2006
Respostas 4
Participantes 3