Como transportar parâmetros com redirect?

Pessoal,

Este é o meu primeiro post no fórum, sou iniciante em Java e em desenvolvimento web e estou com uma dúvida e gostaria da ajuda de vocês. :smiley:

Eu queria saber como redirecionar um usuário entre páginas sem perder os parâmetros do request. Pelo que entendi, ao configurar o faces-config.xml como redirect, seria como se o browser gerasse 2 requisições, e por conta disso os dados do request original são perdidos. (Por favor, me corrijam caso eu esteja errado)

Poderia fazer isso com forward, assim os parâmetros não são perdidos. Mas eu estou estudando uma outra maneira de fazer como se fosse com um redirect, inclusive mudando a url no browser do usuário.

Uma maneira que me ensinaram seria setar os objetos que preciso passar na sessão, depois na página poderia resgatar e retirar do SessionMap, mas isso me parece uma gambiarra e queria saber se vocês conhecem um modo melhor de fazer isso.

Agradeço desde já e abraços a todos.

Pessoal, alguém tem alguma idéia?

Olá,

Por definição, quando se faz um redirect ocorre outro request e assim os dados do request anterior são perdidos.
Se você não quer associar uma sessão e não necessita de estado conversacional, basta fazer o forward mesmo.
Contudo, se você precisa de estados conversacional entre múltiplos requests (e pelo contrário isso não é gambiarra),
deve associar uma sessão HttpSession, pois ela existe justamente para isso. Dependendo do caso, você poderia passar
as informações para o outro request via URL, mas note que há limitações com relação a quantidade de caracteres,
segurança e somente Strings (chave=valor).

[ ]'s