[Resolvido]Controller para Redirecionamento

Boa tarde, estou tentnado fazer um Controller para redirecionamento do usuário para páginas externas, sem colocar o link direto no

Fiz algo mais ou menos assim usando o Spring:

@Controller
@RequestMapping("/redirect")
public class RedirectController 
{
	@RequestMapping("/{url}")
	public void redirecionar(@PathVariable("url") String url,HttpServletResponse response)
	{
		try 
		{
			response.sendRedirect(url);
		} 
		catch (IOException e) 
		{
			throw new RuntimeException(e);
		}
	}
}

Porém, ao passar um site, por exemplo:

/redirect/www.uol.com.br

Ele causa um erro no navegador, dizendo o seguinte:

[color=red]O Firefox detectou que o pedido para este endereço não será concluído devido à forma que o servidor o está redirecionando.[/color]

Alguém sabe como resolver isso ? se devo mudar o modo de redirecionar ?

Obrigado.

faltou o http:// ai :o)

Já tentei com o http, e não da certo, ele vai pra 404

Qual o valor que chega no url?
response.sendRedirect(url);

Se você imprimir no console, tá escrito oq?

Entendi o que esta acontecendo, quando eu envio a @PathVariable, se possuir pontos ou barras, são removidas, entao, se eu mandar:

“uol.com.br”

só chega a String: “uol”

e o “.com.br” some…

Será que não tem jeito de passar este valor por @PathVariable ?

Senão vou ter que fazer como get msm:

redirect?url=http://www.uol.com.br

Ou então você pode alterar na unha antes do redirect! :roll: :roll: :roll:

Ai começa a entrar as gambis…

resolvi fazer o get msm:


http://site.com.br/redirect/externo?url=Http://www.google.com.br

Agora to pensando num modo de fazer um controller parecido com esse, mas para download de arquivos, porque não quero deixar um link ligado direto ao arquivo, tipo:

http://site.com.br/arquivos/catalogo_de_produtos.xml

quero algo assim:

http://site.com.br/download?arquivo=catalogo_produtos

Criei um simples controlador que faz o redirect:

@Controller
@RequestMapping("/redirect")
public class RedirectController 
{
	@RequestMapping("/externo")
	public void redirecionar(String url,HttpServletResponse response)
	{
		try
		{
			response.sendRedirect(url);
		}
		catch(IOException e)
		{
			throw new RuntimeException(e);
		}
	}
}