--- title: Usando o Header Referer para fazer redirecionamentos --- Geralmente quando você clica em um link, ou submete um formulário, o browser envia uma requisição para o servidor da sua aplicação, colocando um Header chamado Referer, que contém qual é a página atual, que originou a requisição. Você pode usar esse Header com o VRaptor, para fazer os redirecionamentos: ~~~ #!java import static br.com.caelum.vraptor.view.Results.referer; @Controller public class ShoppingController { //... public void adicionaItem(Item item) { validator.checking(...); validator.onErrorUse(referer()).forward(); dao.adiciona(item); result.use(referer()).redirect(); } } ~~~ O problema em usar o Referer é que ele não é obrigatório. Então quando o Referer não vem na requisição, o VRaptor vai lançar uma IllegalStateException, e assim você pode especificar uma outra lógica para ir caso o Referer não seja especificado: ~~~ #!java try { result.use(referer()).redirect(); } catch (IllegalStateException e) { result.use(logic()).redirectTo(HomeController.class).index(); } ~~~