Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Diferença entre @PathVariable e @RequestParam

Poderia detalhar a diferença entre @PathVariable e @RequestParam? Por favor!

2 respostas
solução!

Oi Julio,

@RequestParam é utilizado para pegar uma parâmetro de query da url, por exemplo:

http://localhost:8080/topicos?curso=Java

O parâmetro curso é um parâmetro de url e para você recuperá-lo no controller, você deve utilizar a anotação @RequestParam:

@GetMapping("/topicos")
public void exemplo(@RequestParam String curso) {
    //...
}

Já a anotação @PathVariable serve para pegar um trecho da url que geralmente é dinâmico. Exemplo:

http://localhost:8080/topicos/java

Agora como não tem o padrão ?nomeParametro=valorParametro na url, o /java não é mais um parâmetro de query, mas sim parte da própria url, e para recuperá-lo devemos utilizar a anotação @PathVariable:

@GetMapping("/topicos/{curso}")
public void exemplo(@PathVariable String curso) {
    //...
}

Conseguiu entender a diferença?

Bons estudos!

Consegui sim! Muito obrigado