Diferença entre o parâmetro de propriedade de @requestMapping e @requestParam [duplicate]
Eu descobri que ambos os parâmetros de propriedade de @requestMapping e @requestParam poderiam realizar o parâmetro de método de ligação ao endereço de URL. Então, no caso geral, eles podem ser substituídos um pelo outro?
Respostas
provavelmente você deveria ter elaborado sua pergunta com exemplos.
De qualquer forma, os parâmetros @RequestMapping e @RequestParams são geralmente usados para finalidades diferentes
Vejamos o exemplo de:https://stackoverflow.com/ perguntas / 63871895
Neste URI, podemos ver dois manipuladores diferentes em um controlador.
@RequestMapping(path = "/questions/{id}", method = RequestMethod.GET)
public Question getQuestion(@PathVariable int id) {
// returns a particular question
}
@RequestMapping(path = "/questions", method = RequestMethod.GET)
public List<Question> getQuestions() {
// returns all questions
}
Agora, aqui, os mapeamentos de parâmetros são considerados como restrições que são aplicadas. O mapeamento de caminho primário (ou seja, o valor URI especificado) ainda precisa identificar exclusivamente o manipulador de destino, com mapeamentos de parâmetros simplesmente expressando pré-condições para invocar o manipulador.
Agora, vamos ver um exemplo para @RequestParams: https://www.google.com/search?client=opera&q=stackoverflow&sourceid=opera&ie=UTF-8&oe=UTF-8
Neste URL, podemos ver um manipulador como:
@RequestMapping(path = "/search", method = RequestMethod.GET)
public List<Results> getResults(@RequestParam Map allRequestParams) {
// returns results based on query parameters
}
Isso sempre chamará o mesmo manipulador, independentemente de os parâmetros de consulta serem fornecidos ou não. Portanto, @RequestParams é usado para extrair os parâmetros de consulta do URL.
Portanto, geralmente, você pode tentar usar os parâmetros @RequestMapping no lugar de @RequestParams, mas terá os efeitos explicados nos exemplos acima.
fontes :https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html