getAttribute imprime null

7 respostas
lelodois
Servlet                Declaração ok
                                            Result setrs = bd.retornaPergunta(5);
		// atribui os valores aos atributos
		while(rs.next()){
			descricaoPergunta = rs.getString("desc_perg");
	    	dominio = rs.getString("desc_domi");
	   		idPergunta = Integer.parseInt(rs.getString("opm3pergunta"));
	   		request.setAttribute("nomeEmpresa",rs.getString("nome_comp"));
		}
		request.setAttribute("dominio", dominio);
		request.setAttribute("quantidade",quantidade);		
		request.setAttribute("teste","conteudo");
		request.setAttribute("descricaoPergunta",descricaoPergunta);
			// redireciona o servlet para um jsp
		rd = getServletContext().getRequestDispatcher("/questionario.jsp");
		rd.forward(request,response);
jsp

<%		

String nome_comp = (String)request.getAttribute(nomeEmpresa);

String desc_perg =(String) request.getAttribute(descricaoPergunta);

String desc_domi = (String)request.getAttribute(dominio);

String quantidade = (String)request.getAttribute(quantidade);

out.println("todos novos 2: " + desc_perg + desc_domi + quantidade + request.getAttribute(resultset));

out.println("
nome: " + nome_comp);

%>

imprime nulll
porque?

valeuu

7 Respostas

nbluis

Tem certeza que seu resultset retorna dados ??

lelodois

sim.
eu teste…

oque pode ser?

lelodois

as variáveis estão todas certas…

as saidas estão okkkkk…
estou desde ontem com este problema

será se não é o xml ou alguma configuração???

furutani

Olá

Onde vc faz request.setAttribute(“resultset”, rs)?

lelodois

qdo eu tento passar o rs eu passo no lugar destes atributos

ou seja passo o set no servlet e mais embaixo faço o dispacher

fica + ou - assim

servlet

ResultSet rs = metodoRetornaResultSet();

request.setAttribute(resultset, rs);

// dispacher

jsp
ResultSet = request.getAttribute(“resultset”);
// e também retorna null
// mas teve uma vez que eu mandei imprimir o rs ele retornou o
endereço da memória

furutani

Olá

Eu não sei qual é o problema de imprimir null. Mas ao invés de passar o ResultSet para o JSP, passa uma coleção de objetos.
Pega o ResultSet no servlet, percorre ele e vai construindo objetos com atributos que você queira mostrar no JSP.
Assim fica mais facil de debugar.

tRuNkSnEt

Cara, não tenho certeza mas acho que ao dar um flush no seu servlet ocorre que o seu ResultSet recebe um .close(); Então quando tentar usar ele no seu jsp ele vai estar vazio; Me lembro de uma situação que aconteceu comigo antigamente quando tentava jogar um arquivo no stream.

Então faça igual o Furutani disse, pegue seu ResultSet joge numa coleção (java.util.List por exemplo) e configure um atributo. É até melhor porque ai você não deixa recursos abertos!

Criado 17 de outubro de 2007
Ultima resposta 18 de out. de 2007
Respostas 7
Participantes 4