galera é o seguinte…
estou fazendo uma pesquisa e qdo clico no submit meu form chama um Servlet…
este Servlet faz a pesquisa, retorna o resultado na forma d uma ArrayList
e inclui esta ArrayList na Session para que eu possa recuperar depois e mostrar na tela…
soh q qdo recupero ela vem vazia…naum entra no for q fiz pra percorrer ela…
parte do meu código está neste link…pra ficar melhor d vcs entenderem…
obrigado…
[quote=mor@es]galera é o seguinte…
estou fazendo uma pesquisa e qdo clico no submit meu form chama um Servlet…
este Servlet faz a pesquisa, retorna o resultado na forma d uma ArrayList
e inclui esta ArrayList na Session para que eu possa recuperar depois e mostrar na tela…
soh q qdo recupero ela vem vazia…naum entra no for q fiz pra percorrer ela…
parte do meu código está neste link…pra ficar melhor d vcs entenderem…
obrigado…
http://www.4shared.com/file/61763830/942ce8cb/Daniel.html[/quote]
ow coloca no req, mas, tentei abaixar o arquivo http://www.4shared.com/file/61763830/942ce8cb/Daniel.htm
a faculdade bloquei aqui, posta seu codigo aqui blz.
falow
ta aew kra…desde já obrigado
//função que faz a pesquisa e retorna a ArrayList
public ArrayList getLista(String sPesq) throws SQLException{
String SQL = new String();
SQL = “SELECT * FROM PRODUTOS WHERE PRO_DES LIKE (?) ORDER BY PRO_DES”;
PreparedStatement stmt = this.con.prepareStatement(SQL);
stmt.setString(1,"’%"+sPesq+"%’");
ResultSet rs = stmt.executeQuery();
ArrayList produtos = new ArrayList();
while (rs.next()){
Produto produto = new Produto();
produto.setPRO_COD(rs.getString(“PRO_COD”));
produto.setPRO_DES(rs.getString(“PRO_DES”));
produto.setPRO_PRE(rs.getFloat(“PRO_PRE”));
produtos.add(produto);
}
return produtos;
}
//Servlet que chama a função acima e add o resultado na session
try {
ArrayList produtos = new ArrayList();
ProdutoDAO Produtos = new ProdutoDAO();
produtos = Produtos.getLista(request.getParameter(“busca”));
HttpSession sessao = request.getSession();
sessao.setAttribute(“pesquisa”,produtos);
request.getRequestDispatcher(“pecas.jsp”).forward(request, response);
} catch (Exception e){
out.println(“ERRO”+e.getMessage());
}
//página jsp q usa a ArrayList para imprimir o resultado da pesquisa
if (sessao.getAttribute(“pesquisa”) != null){
ArrayList produtos = new ArrayList();
produtos = (ArrayList) sessao.getAttribute(“pesquisa”);
DecimalFormat formatador = new DecimalFormat();
formatador.applyPattern("###,##0.00");
out.println("
"); else out.println(" | |
"); out.println(produto.getPRO_DES()); out.println(" |
"); out.println(formatador.format(produto.getPRO_PRE())); out.println(" |
}
mor@es,
eu não analisei muito bem seu código com atenção, mas das vezes que isto acontecia comigo era algum problema na própria consulta… tente varrer o array imprimindo o conteúdo na console e posta ai se a consulta está ok…
[quote=VinicerasMG]mor@es,
eu não analisei muito bem seu código com atenção, mas das vezes que isto acontecia comigo era algum problema na própria consulta… tente varrer o array imprimindo o conteúdo na console e posta ai se a consulta está ok…
[/quote]
ow e ai blz?
Então seu List esta vazio pq a consulta nao deve estar retornando nada.
Tenta ver se o ResultSet esta populado apos a consulta.
só uma pergunta, pq vc nao coloca no request em vez da sessao?
falow
soh c estou passando o parâmetro errado…
estou passando assim…
select * from produtos where pro_des like (?)
e alimento o parâmetro com ‘%+a string q o usuário digita+%’
será q está correto?
como assim usar o request?
obrigado
Galera consegui…estava passando o parametro d forma errada no comando like…
mas yoshikichi ainda estou curioso para saber como usar apenas o request no retorno do Servlet…
c puder posta aew…
muito obrigado pela atenção galera
[quote=mor@es]Galera consegui…estava passando o parametro d forma errada no comando like…
mas yoshikichi ainda estou curioso para saber como usar apenas o request no retorno do Servlet…
c puder posta aew…
muito obrigado pela atenção galera
[/quote]
req.setAttribute(“assim”, lista);
mor@es quando postar seus códigos use a tag code.
Dê uma olhada nas regras do fórum tb.
Sugestão: procure não utilizar o session para passar dados para a camada view.
Cada vez que você coloca algo no session, está ocupando a memória do servidor, se você tiver 5 utilizar que busquem a lista inteira do banco de dados, o servidor já vai começar a ficar lento, pois terá 5 listas gigantescas em memória.
Procure sempre passar os parâmetros pelo request, como mostrou o yoshikichi.
valew pelas dicas galera…t+