Não consigo passar atributo para uma página

E aí pessoal do guj

Estou com um problema pra passar dados de uma página para outra, usando o tomcat. Vejam, tenho este link aqui:

<p><a href="oi.jsp?nome=Eduardo">Oi direto</a></p>

E tenho esta página aqui:

[code]

Oi

Oi ${nome}

[/code]

Ao clicar no link, só aparece “Oi”, sem nada depois! Tentei passar por uma servlet mas deu o mesmo resultado, ela inclusive imprime null quando tento acessar o atributo. Criei o link e a classe:

<p><a href="Oi?nome=Eduardo">Oi passando pela servlet</a></p>

[code]package com.dudaskank.estrategiaf1.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Oi extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
		IOException {
	process(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
		IOException {
	process(request, response);
}

protected void process(HttpServletRequest request, HttpServletResponse response) throws ServletException,
		IOException {
	System.out.println(request.getAttribute("nome"));
	request.getRequestDispatcher("oi.jsp").forward(request, response);
}

}
[/code]

O que estou fazendo de errado?

Obrigado desde já…

Você já tentou pegar com request.getParameter(“nome”) ?

rmarin, deu certo!

coloquei isso na servlet:

request.setAttribute("nome", request.getParameter("nome"));

é assim mesmo que deve ser feito então? ou confundi alguma coisa?

flw

Bom se ele passa pelo seu Servlet você pode fazer assim, é que estou muito acostumado ao uso do Struts, não sei se este é o melhor modo de fazer.

Bom, provavelmente você não vai querer passar somente o nome para o JSP certo? O ideal é você preencher um Bean através dos dados que vieram de sua primeira jsp. Sei lá, preencher um Bean Usuario por exemplo, daí você seta no request o usuario inteiro, request.setAttribute(“usuario”, usuario); note que usuario na sua action deveria ser um objeto do tipo br.com.seila.Usuario, portanto na sua jsp você deveria fazer o Cast de Object para usuario:

br.com.seila.Usuario usuario = (br.com.seila.Usuario)request.getAttribute("usuario");

:stuck_out_tongue:

Oi, pessoal.

Só pra fechar,

request.getParameter(param) é diferente de request.getAttribute(param).

Enquanto o primeiro pega os parâmetros que foram postados pelo usuário (como por exemplo, na URL que você passou), o segundo pega os valores que foram setados explicitamente no request através de request.setAttribute(param, valorDoParam).

É por isso também que o objeto session só possui o método getAttribute.

Abraços.

Valeu rmarin, eu também prefiro passar o objeto assim para o request, é que esse era só um teste hehehe, mas muito obrigado pela ajuda

E valeu pela explicação também ldanielts, eu confundo os 2 sempre hehe

flw