Spring 3 – Passando parâmetros de requisição para Controllers

Neste post vou mostrar como passar parâmetros de solicitação para métodos de Controller no Spring MVC 3.
Existem algumas maneiras para passar parâmetros de solicitação ao Controller no Spring MVC :

Passando parâmetros de solicitação na forma comum, em um pedido de URL.
Por exemplo: http://myapp.com/users?userId=1234

Passando um parâmetro de solicitação no caminho da URL, pelo path.
Por exemplo: http://myapp.com/user/1234

Através de formulários HTML(fica para outro post).
Ou, como sempre, os parâmetros de solicitação podem ser buscados a partir da instância HttpServletRequest que podem ser acessados de qualquer método mapeado dentro de um Controller.
Vou mostrar neste post apenas as duas primeiras formas da lista acima, pois são fáceis e muito convenientes.

package my.comp.controllers;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MyRequestParamsController {
	
        //a URL request abaixo irá mapear o parametro userId declarado na assinatura do método:
        //Exemplo de URL de chamada http://.../user?userId=1234	
	@RequestMapping(value = "/user")
	public ModelAndView getUserByRequestParamInTheUrl(@RequestParam(value="userId", required=true) String userId, HttpServletRequest request,
			HttpServletResponse response) {		
		//.. codigo .. //
		System.out.println("Parametro de entrada: " + userId);
		
		ModelAndView modelAndView = new ModelAndView("userinfo");
		
		//Adicionando o userId na página userinfo 
		modelAndView.addObject("userId", userId);
		
		return modelAndView;
	}
	
        //a URL request abaixo irá mapear o parametro de valor: 1234 na variável userId declarada na assinatura do método, o parâmetro é passado pelo path da URL:
        //Exemplo de URL de chamada http://.../user/1234	
	@RequestMapping(value = "/user/{userId}")
	public ModelAndView getUserByPathVariable(@PathVariable Long userId, HttpServletRequest request,
			HttpServletResponse response) {
		
		//.. codigo .. //
		System.out.println("Parametro de entrada: " + userId);
		
		ModelAndView modelAndView = new ModelAndView("userinfo");
		
		//Adicionando o userId na página userinfo  
		modelAndView.addObject("userId", userId);
		
		return modelAndView;
	}
}

Documentação do Spring MVC
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html

Divirta-se!

Fonte:
http://www.commonj.com/blogs/2012/06/01/spring-mvc-3-tutorial-passing-request-parameters-to-controllers/

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s