Uso correto do Forward e Redirect Spring MVC

Bom dias pessoas,

Vou tentar resumir a dúvida:

Tenho um link em uma jsp:

E mapeio essa url no controller:

@RequestMapping(value = "alteracao_usuario") public String carregaUsuario(HttpServletRequest request, Model model) { String id = request.getParameter("id"); //aqui carrego a tela de alteração de usuario, passando pro model o usuário e a jsp já carregando seus respectivos inputs return "alteracao"; }

E mapeio também o mesmo método com o POST (o form da jsp de alteração tem o mesmo url)

@RequestMapping(value = "alteracao_usuario", method = RequestMethod.POST) public String alteraUsuario(@Valid Usuario usuario, BindingResutl result, HttpServletRequest request) { if (result.hasErrors) { //AQUI ESTÁ O PROBLEMA, já que eu preciso passar o valor por get no controller acima novamente. return "alteracao"; } }

Neste ultimo controller está o problema, pois se uso redirect, tenho que passar o valor por get novamente (o que não acho muito seguro, sem contar que fica feio também).
Se uso forward, o server encaminha a requisição, mas como ela é por POST, a GET acima não aceita, e se aceita, dá erro na hora de pegar o parametro id por get também.

Estou nisso há 3 dias, tentando resolver de uma forma que não vire POG, se alguem tiver uma idéia de como resolver, agradeço e muito. Qualquer dica é bem vinda também.

Grato desde já, abraços.

Up!

Caso eu não tenha sido claro, é só perguntar.

ve se pode te ajudar:

http://www.caelum.com.br/apostila-java-web/spring-mvc/#11-15-redirecionando-a-requisicao-para-outra-acao

Boa tarde hcmm,

Então, foi exatamente essa apostila que li pra começar esse projeto, porém, a dúvida é outra: eu sei que usando forward eu mando a requisição pra outra action pelo server, e que usando redirect o server envia uma mensagem pro browser carregar novamente a mesma página.

Imagine o seguinte cenário: tenho a jsp que carrega os dados do usuários (chamada alteracao, com inputs) a partir do id pelo GET. Na minha action de validação e alteração do usuário, durante a validação com Bean Validation, o usuário apaga um campo sem querer, gerando um erro, e tenho que retornar a mesma página com o retorno do método da action. Só que, para isso, eu preciso pegar o id pelo GET novamente, o que refaz a pesquisa no bd, em vez de mostrar o erro ao usuário. Sei lá, tá dificil de explicar.

Qualquer coisa é só perguntar.

Muito obrigado, abraços.