setAtribute não funciona

Pessoal tenho uma servlet onde eu coloco alguns atributos pelo set atribute e dou um forward com RequestDispacher para uma jsp so que essa jsp. so q os atributos nunca chegam na jsp sempre estao null.

tanto o getParameter qnto o getAtribute retorna null.

alguem sabe porq?

Posta o código do servlet e do jsp de destino para que eu possa dar uma olhada e ver a origem do problema.

ta +ou- assim:

doPost(…){
request.setAtribute(“erro”,“mensagem de erro”);

RequestDispacher rd = request.getReq…(“pagina.jsp”).forward(request, response);
}

no jsp
<%= request.getParameter("erro) %>

nao da pra colocar o codigo real aqui por causa do sistema de seguranca da empresa. entao fiz esse esboço ae.

vlw

outra coisa, se na hora do forward eu colocar o nome do jsp seguido de ?erro=mensagem_de_erro funciona perfeitamente.

request.setAttribute funciona com o esquema de chave + valor, onde a chave seria o apelido que você dá ao objeto e valor seria o objeto.

Exemplo:


ContaCorrente cc = new ContaCorrente();
cc.setNumero = "454-5";
cc.setTitular = "Leonardo Cantanhêde";

request.setAttribute("conta", cc);

Recuperando o objeto no jsp:


ContaCorrente cc = (ContaCorrente)request.getAttribute("cc");

[quote=leocantanhede]request.setAttribute funciona com o esquema de chave + valor, onde a chave seria o apelido que você dá ao objeto e valor seria o objeto.

Exemplo:


ContaCorrente cc = new ContaCorrente();
cc.setNumero = "454-5";
cc.setTitular = "Leonardo Cantanhêde";

request.setAttribute("conta", cc);

Recuperando o objeto no jsp:

[code]

ContaCorrente cc = (ContaCorrente)request.getAttribute(“cc”);

[/code][/quote]

o problema esta ae, qndo recupero com getAtribute ou getParameter ele retorna null, ou seja, o objeto nao esta sendo guardado no contexto, so nao sei prq.

Pelo fragmento de código que você postou acima, mensagem de erro não é um objeto, o que eu quiz dizer é que por exemplo crie uma variável String e atribua o valor “mensagem de erro” a ela, assim você conseguirá recuperá-la na seu jsp

entedi, vou testar aqui.

sabe me dizer ql eh a diferenca de passar uma string direto e de criar um objeto e depois passar? me parece a mesma coisa.

Java é uma liguagem fortemente tipada, ele só ira interpretar uma variável ou objeto se você os declarar antes, “mensagem de erro” não é uma varíavel se você não atribuir um tipo a ela:

Interpretado:


String erro = "mensagem de erro";

Não intepretado, e gera erro


erro = "mensagem de erro";

testei do jeito q vc falou e nao funcionou.