Gente, o negócio é o seguinte: estou tentando setar um atributo no pedido no servlet e usá-lo em um arquivo .jsp, mas não estou conseguindo. Como o código é muito grande, vou mostrar a parte que interessa:
//Servlet
...
//Aqui eu faço uma procura em um banco de dados
...
String saida;
if (procura.resultado.size() != 0) { //Se retornou resultado
saida = (String) procura.resultado.elementAt(0);
for (int i = 1;i < procura.resultado.size();i++) {
saida += "@" + procura.resultado.elementAt(i);
}
pedido.setAttribute("buscaResultado",saida);
}
despachante = getServletConfig().getServletContext().getRequestDispatcher("/busca.jsp");
despachante.forward(pedido,resposta);
return;
}
...
mais codigo aqui
...
<%
HttpSession sessao = request.getSession(true);
out.println(sessao.getAttribute("buscaResultado")):
%>
Acredito que irá aparecer o resultado da sua sessão agora
Hmm… outro problema que costumo ter (inclusive, tá acontecendo agora) é que eu atualizo o arquivo .jsp, reinicio o tomcat, mas ele não o recompila; quando procuro o meu busca_jsp.java, ele continua igual o antigo, não quer mudar de jeito nenhum
como resolvo isso? =(
Hmm… agora que consegui que compilasse, vi que ainda não deu certo… se é getParameter no request, qual o comando pra setar?
é setAttribute mesmo?
resumindo: no servlet eu to dando setAttribute no request e despachando pra um .jsp, e no jsp eu queria pegar essa variável que eu setei no servlet. Como faço?
Hm… agora eu to vendo aqui outras páginas dessa mesma aplicação que um cara aqui do serviço tinha feito, e tudo tá com request.getAttribute(“blabla”), e funcionando perfeitamente…
é ele que tem o toque divino ou eu que to fazendo alguma coisa a mais de errado?
=(
Cara alguma coisa ae esta errada no seu codigo.
Se voce faz um request.setAttribute(referencia,valor) na servlet no jsp é só recuperar request.getAttribute(referencia).
Ta estranho esse não funcionamento! Da uma olhada ae se em algum lugar do codigo voce nao mata oq tinha setado.
[quote=“Rodrigo.Decalque”]Gente, o negócio é o seguinte: estou tentando setar um atributo no pedido no servlet e usá-lo em um arquivo .jsp, mas não estou conseguindo. Como o código é muito grande, vou mostrar a parte que interessa:
//Servlet
...
//Aqui eu faço uma procura em um banco de dados
...
String saida;
if (procura.resultado.size() != 0) { //Se retornou resultado
saida = (String) procura.resultado.elementAt(0);
for (int i = 1;i < procura.resultado.size();i++) {
saida += "@" + procura.resultado.elementAt(i);
}
pedido.setAttribute("buscaResultado",saida);
}
despachante = getServletConfig().getServletContext().getRequestDispatcher("/busca.jsp");
despachante.forward(pedido,resposta);
return;
}
...
mais codigo aqui
...
Sim, só que ao invés de botar o nome em inglês, nós botamos em portugues =)
Não sei porque, mas milagrosamente deu certo, eu tinha mudado um tanto de coisa (como o getParameter e tudo), e, quando voltei pro que tava, deu certo, uhuhuh, melhor assim =D
A última dúvida agora: na hora de setar o atributo, eu só posso passar como valor uma String ou posso passar um objeto qualquer, pra depois recuperá-lo com getAttribute?
Exemplo:
//Imaginem que fiz uma classe chamada Abacaxi
Abacaxi a = new Abacaxi(folhas,fruta,semente);
request.setAttribute("abacaxi",a);
e aí, na hora de pegar:
Abacaxi b = (Abacaxi) request.getAttribute("abacaxi");