Différence entre le paramètre de propriété de @requestMapping et @requestParam [duplicate]

Sep 13 2020

J'ai trouvé que les paramètres de propriété de @requestMapping et @requestParam pouvaient réaliser le paramètre de méthode de liaison à l'adresse URL? Alors, en général, peuvent-ils être remplacés les uns par les autres?

Réponses

2 AliTahir Sep 13 2020 at 23:00

vous auriez probablement dû élaborer votre question avec des exemples.

Quoi qu'il en soit, les paramètres @RequestMapping et @RequestParams sont généralement utilisés à des fins différentes

Prenons l'exemple de:https://stackoverflow.com/ questions / 63871895

Dans cet URI, nous pouvons voir deux gestionnaires différents dans un contrôleur.

@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
}

Maintenant, ici, les mappages de paramètres sont considérés comme des restrictions qui sont appliquées. Le mappage de chemin principal (c'est-à-dire la valeur d'URI spécifiée) doit toujours identifier de manière unique le gestionnaire cible, les mappages de paramètres exprimant simplement les conditions préalables à l'appel du gestionnaire.

Voyons maintenant un exemple pour @RequestParams: https://www.google.com/search?client=opera&q=stackoverflow&sourceid=opera&ie=UTF-8&oe=UTF-8

Dans cette URL, nous pouvons voir un gestionnaire comme:

@RequestMapping(path = "/search", method = RequestMethod.GET)
public List<Results> getResults(@RequestParam Map allRequestParams) {
// returns results based on query parameters
}  

Cela appellera toujours le même gestionnaire, que les paramètres de requête soient fournis ou non. Ainsi, @RequestParams est utilisé pour extraire les paramètres de requête de l'URL.

Donc, généralement, vous pouvez essayer d'utiliser les paramètres @RequestMapping à la place de @RequestParams mais cela aura les effets expliqués dans les exemples ci-dessus.

sources :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