Table des matières
@RequestMapping
@RequestParam
@PathVariable
@ResponseBody
@RequestBody
@ExceptionHandler
Maison Java JavaBase L'utilisation de 5 annotations couramment utilisées dans springmvc

L'utilisation de 5 annotations couramment utilisées dans springmvc

Jul 01, 2020 pm 05:25 PM
springmvc

Cinq annotations courantes de springmvc : 1. @RequestMapping, qui est une annotation utilisée pour traiter le mappage d'adresse de requête ; 2. @RequestParam, qui est utilisé pour mapper les données de la zone de paramètres de requête aux paramètres de traitement de la fonction ; méthode ; 3. @PathVariable, utilisée pour définir les variables de requête.

L'utilisation de 5 annotations couramment utilisées dans springmvc

@RequestMapping

est une annotation utilisée pour gérer le mappage d'adresses de requête
est applicable aux classes et aux méthodes. Utilisé sur une classe, cela signifie que toutes les méthodes de la classe qui répondent aux requêtes utilisent cette adresse comme chemin parent.

Attributs

value : Spécifiez l'adresse réelle de la demande. La valeur peut être une valeur spécifique ordinaire, ou elle peut être spécifiée comme un type de valeur contenant une certaine variable (URI). Modèles de modèle avec variables de chemin)
Peut être spécifié comme type de valeur contenant des expressions régulières (Modèles de modèle URI avec expressions régulières)
method : Spécifiez le type de méthode de la requête, GET, POST, PUT, DELETE , etc.
consumes : Spécifiez Traiter le type de contenu de soumission (Content-Type) de la demande, tel que application/json, text/html
produces : Spécifiez le type de contenu renvoyé, uniquement lorsque le Le type (Accepter) dans l'en-tête de la requête contient le type spécifié. Retour
params : La requête spécifiée doit contenir certaines valeurs de paramètres avant que cette méthode puisse la traiter
headers : La requête spécifiée doit contenir certaines valeurs. les valeurs d'en-tête spécifiées avant que cette méthode puisse traiter la demande

  1.处理get请求: @RequestMapping(value = "index",method = RequestMethod.GET)
  2.springboot错误处理(使用app客户端返回json格式,使用浏览器返回html错误页)
   @RequestMapping(produces = "text/html")
  3.方法仅处理request Content-Type为“application/json”类型的请求
   @RequestMapping(value = "/pets", consumes="application/json")
  4.仅处理请求中包含了名为“myParam”,值为“myValue”的请求
   @RequestMapping(value = "/pets/{petId}", params="myParam=myValue") 
  5.仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.rxy.com/”的请求
   @RequestMapping(value = "/pets", headers="Referer=http://www.rxy.com/")
Copier après la connexion

@RequestParam

est utilisée pour mapper les données de la zone de paramètre de demande aux paramètres de la méthode de traitement de fonction
Applicable à : paramètres de méthode

attributs

value/name : les deux attributs font référence à des noms de paramètres, c'est-à-dire le nom du paramètre demandé (généralement l'attribut de nom de formulaire)
required : si c'est nécessaire, la valeur par défaut est true, indiquant que la requête doit avoir les paramètres correspondants, sinon une exception sera levée
defaultValue : Valeur par défaut, indiquant la valeur par défaut s'il n'y a pas de paramètre du même nom dans la requête . Lors de la définition de ce paramètre, require est automatiquement défini sur false

  如果是原子类型,不管加没加注解,都必须有值,否则抛出异常,如果允许空值请使用包装类代替
  index(@RequestParam Integer num){}  表示该参数必须传递,值允许为空
  表示该参数非必须,如果不传则默认为0
  getPageData(@RequestParam(name="pageNum",defaultValue="0") String pageNo, String pageSize)
Copier après la connexion

@PathVariable

Utilisé pour mapper les variables de modèle dans l'URL de la requête aux paramètres de la méthode de traitement de la fonction, c'est-à-dire prendre. extrayez les variables dans le modèle uri en tant que paramètres
Applicable : paramètres de méthode

attributs

valeur : Spécifiez le nom de la variable du modèle d'URL. Si le nom est différent du nom du paramètre de méthode, vous. Vous devez le spécifier. Sinon, vous pouvez l'omettre.

    @RequestMapping("/index/{id}")
         public String index(@PathVariable("id") String sdf){
           System.out.println(sdf);
           return "index";
     }
Copier après la connexion

@ResponseBody

Cette annotation est utilisée pour renvoyer la méthode de Controller L'objet, après avoir été converti au format spécifié via. approprié HttpMessageConverter, est écrit dans la zone de données Response de l'objet body Par défaut, springmvc est renvoyé sous la forme de json (en utilisant le convertisseur jackson)
est. applicable : Méthode, lorsque les données renvoyées ne sont pas une page avec des balises html, mais des données dans un autre format (comme json, xml, etc.), utilisez la
comparaison : @RequestBody Convertissez le corps de la requête HTTP en un Objet HttpMessageConverter approprié
@ResponseBody Renvoyer le contenu ou l'objet en tant que corps de réponse HTTP et appeler l'objet de conversion Adaptateur approprié pour HttpMessageConverter pour écrire dans le flux de sortie

@RequestBody

1. Cette annotation est utilisée pour la lecture. Les données de la partie du corps de la requête Request sont analysées à l'aide du HttpMessageConverter configuré par défaut du système, puis les données correspondantes sont liées à l'objet à renvoyer
2. Liez ensuite les données de l'objet renvoyées par HttpMessageConverter aux paramètres de la méthode dans le contrôleur
Applicable : paramètres de méthode, pour la requête Content-Type : application/json, application/xml doit utiliser cette annotation
Pour application/x-www-form-urlencoded, si la méthode de requête est mise, cette annotation est obligatoire,
Facultatif pour la méthode POST/GET (c'est-à-dire non obligatoire, car @RequestParam, @ModelAttribute peut également être traité)
Pour les données multipart/form, @RequestBody ne peut pas gérer les données dans ce format
Attribut : obligatoire : que cela soit obligatoire, la valeur par défaut est vraie, ce qui signifie que la requête doit avoir les paramètres correspondants, sinon une exception sera levée
Exemple : généralement le front-end utilisant cette annotation envoie une requête ajax, alors la partie requête est la suivante :

         $.ajax({
           type: "POST",
           url:"/role/saveRole",
           contentType:"application/json",
           data: JSON.stringify(_self.form)...
Copier après la connexion

Remarque : contentType ne peut pas être omis, les données doivent être converties en chaîne json via stringify
Ensuite, la méthode correspondante peut être écrite comme this :

@RequestMapping(value = "/saveRole",method = RequestMethod.POST)
public String saveRole(@RequestBody People requestJson) {}
Copier après la connexion

Si le front-end transmet un tableau d'objets, alors le backend peut également utiliser List pour l'accepter directement. C'est le moyen le plus pratique de lier les données de la liste

<.>@CookieValue

peut lier la valeur du cookie dans l'en-tête de requête aux paramètres de la méthode ci-dessus

s'applique à : les paramètres de la méthode

获取cookie中的JSESSIONID
public String index(@CookieValue("JSESSIONID") String cookie){}
Copier après la connexion
@RequestHeader

. peut lier la valeur de la partie en-tête Request aux paramètres de la méthode

s'applique à : paramètres de la méthode

获取请求中Accept-Encoding值,返回gzip, deflate, br
public String index(@RequestHeader("Accept-Encoding") String host){return host;}
Copier après la connexion

@ExceptionHandler

注解在方法上,表示该方法用于处理特定的异常,处理范围是当前类,如果想要全局捕获异常,需要使用@ControllerAdvice
当一个Controller中有多个HandleException注解出现时,那么异常被哪个方法捕捉呢?这就存在一个优先级的问题
ExceptionHandler的优先级是:在异常的体系结构中,哪个异常与目标方法抛出的异常血缘关系越紧密,就会被哪个捕捉到
属性:value: 需要处理的异常类型集合(Class)
在当前Controller有两个处理异常的方法,当访问/index时,页面显示: json data

package com.rxy.controller;

@Controller
public class HelloController {
    
    @ExceptionHandler({ ArithmeticException.class })
    @ResponseBody
    public String handleArithmeticException(Exception e) {
        e.printStackTrace();
        return "json data";
    }
    
    @ExceptionHandler({ IOException.class })
    public String handleIOException(Exception e) {
        e.printStackTrace();
        //返回错误页面
        return "error";
    }

    @RequestMapping("/index")
    public String index(){
        int i = 10 / 0;
        return "index";
    }

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison et analyse des différences entre SpringBoot et SpringMVC Comparaison et analyse des différences entre SpringBoot et SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot et SpringMVC sont tous deux des frameworks couramment utilisés dans le développement Java, mais il existe des différences évidentes entre eux. Cet article explorera les fonctionnalités et les utilisations de ces deux frameworks et comparera leurs différences. Tout d’abord, découvrons SpringBoot. SpringBoot a été développé par l'équipe Pivotal pour simplifier la création et le déploiement d'applications basées sur le framework Spring. Il fournit un moyen rapide et léger de créer des fichiers exécutables autonomes.

Quelles sont les différences entre SpringBoot et SpringMVC ? Quelles sont les différences entre SpringBoot et SpringMVC ? Dec 29, 2023 am 10:46 AM

Quelle est la différence entre SpringBoot et SpringMVC ? SpringBoot et SpringMVC sont deux frameworks de développement Java très populaires pour la création d'applications Web. Bien qu’ils soient souvent utilisés séparément, les différences entre eux sont évidentes. Tout d’abord, SpringBoot peut être considéré comme une extension ou une version améliorée du framework Spring. Il est conçu pour simplifier le processus d'initialisation et de configuration des applications Spring afin d'aider les développeurs

Quelle est la différence entre SpringBoot et SpringMVC ? Quelle est la différence entre SpringBoot et SpringMVC ? Dec 29, 2023 pm 05:19 PM

SpringBoot et SpringMVC sont deux frameworks couramment utilisés dans le développement Java. Ils sont tous deux fournis par le framework Spring, mais ils présentent certaines différences dans leurs fonctions et leur utilisation. Cet article présentera respectivement les caractéristiques et les différences de SpringBoot et SpringMVC. 1. Caractéristiques de SpringBoot : Configuration simplifiée : SpringBoot simplifie considérablement le processus de configuration du projet grâce au principe de convention sur la configuration. Il peut configurer automatiquement les paramètres requis par le projet et les développeurs

Quelles sont les différences entre spring et springmvc Quelles sont les différences entre spring et springmvc Dec 29, 2023 pm 05:02 PM

La différence entre spring et springmvc : 1. Positionnement et fonctions ; 2. Fonctions de base 3. Champs d'application ; Introduction détaillée : 1. Positionnement et fonctions. Spring est un cadre de développement d'applications complet qui fournit l'injection de dépendances, la programmation orientée aspect, la gestion des transactions et d'autres fonctions. Il est conçu pour simplifier le développement d'applications au niveau de l'entreprise, et Spring MVC est le meilleur. Framework Spring. Un module qu'il contient est utilisé pour le développement d'applications Web et implémente le modèle MVC 2. Fonctions de base, etc.

Quelles sont les différences entre springboot et springmvc Quelles sont les différences entre springboot et springmvc Jun 07, 2023 am 10:10 AM

Les différences entre springboot et springmvc sont les suivantes : 1. Différentes significations ; 2. Différentes configurations ; 3. Différentes dépendances ; 4. Différentes périodes de développement 6. Différentes façons d'implémenter la fonction d'empaquetage JAR ; Fonction fournie ; 8. Différentes fonctions ; 9. Différents supports de communauté et de documentation ;

Comment utiliser l'intercepteur SpringMVC de Java Comment utiliser l'intercepteur SpringMVC de Java May 13, 2023 pm 02:55 PM

Le rôle de l'intercepteur L'intercepteur de SpringMVC est similaire au filtre dans le développement de servlets, qui est utilisé pour pré-traiter et post-traiter le processeur. Les intercepteurs sont connectés en une chaîne dans un certain ordre, et cette chaîne est appelée chaîne d'intercepteurs (InterceptorChain). Lors de l'accès à une méthode ou à un champ intercepté, les intercepteurs de la chaîne d'intercepteurs seront appelés dans l'ordre dans lequel ils ont été précédemment définis. Les intercepteurs sont également la mise en œuvre spécifique des idées AOP. La différence entre les intercepteurs et les filtres : Filtre (Filter) Le domaine d'utilisation de l'intercepteur (Intercepter) fait partie de la spécification du servlet et peut être utilisé par n'importe quel projet JavaWeb.

Utilisation de SpringMVC pour le traitement des services Web dans le développement d'API Java Utilisation de SpringMVC pour le traitement des services Web dans le développement d'API Java Jun 17, 2023 pm 11:38 PM

Avec le développement d’Internet, les services Web deviennent de plus en plus courants. En tant qu'interface de programmation d'applications, JavaAPI lance constamment de nouvelles versions pour s'adapter aux différents scénarios d'application. En tant que framework open source populaire, SpringMVC peut nous aider à créer facilement des applications Web. Cet article explique en détail comment utiliser SpringMVC pour le traitement des services Web dans le développement JavaAPI, y compris la configuration de SpringMVC, l'écriture de contrôleurs et l'utilisation de

Comparez les similitudes et les différences entre SpringBoot et SpringMVC Comparez les similitudes et les différences entre SpringBoot et SpringMVC Dec 29, 2023 am 08:30 AM

Analyser les similitudes et les différences entre SpringBoot et SpringMVC SpringBoot et SpringMVC sont des frameworks de développement très importants dans le domaine Java. Bien qu'ils fassent tous deux partie du framework Spring, il existe des différences évidentes en termes d'utilisation et de fonctionnalité. Cet article comparera SpringBoot et SpringMVC et analysera les similitudes et les différences entre eux. Tout d’abord, découvrons SpringBoot. PrintempsBo

See all articles