Demande de mise en œuvre d'instructions d'annotation
La fonction de @RequestMapping Annotation Map Maps Web Dechands WEB Classes et / ou méthodes de gestionnaire spécifiques. Cette annotation peut être utilisée sur une classe ou une méthode et spécifie le chemin de demande via la valeur de la propriété. Utilisé sur la classe de contrôleur pour fournir des informations de mappage de demande d'URL préliminaires, qui est un chemin de pré-request par rapport au répertoire racine de l'application Web. Utilisé dans la méthode du contrôleur, cela signifie fournir une carte URL détaillée. Si la classe de contrôleur n'a pas d'annotation de mise en évidence, l'URL de la marque d'annotation sur la méthode est relative au répertoire racine de l'application Web.
L'annotation @Requestmapping fournit les propriétés suivantes:
Nom: utilisé pour spécifier le nom du mappeur
Valeur: utilisée pour spécifier le chemin de mappage, identique au chemin
Chemin: utilisé pour spécifier le chemin de mappage, même valeur
Méthode: Utilisé pour spécifier le type de demande: obtenir, publier, tête, options, mettre, patcher, supprimer, tracer
Paramètres: spécifiez les paramètres demandés
En-têtes: Spécifiez l'en-tête de demande, Exemple de code source: requestmapping (value = "/ quelque chose", en-têtes = "contenu-type = text / *")
Consommateurs: spécifie le type de contenu (type de contenu) qui gère la soumission de la demande, telle que l'application / json, le texte / html. La demande ne sera mappée que si le type de contenu correspond à l'un de ces types de supports.
produit: spécifiez le type de contenu renvoyé par la demande, par exemple: produit = "application / json; charset = utf-8"
Spécifiez le chemin de mappage via l'attribut de valeur
Utiliser l'annotation de la carte de demande sur la classe de contrôleur
@ Contrôleur @ requestmapping ("Order") classe publique OrderInfoController {// Exemple 1 @RequestMapping ("OrderInfo") public ModelandView OrderInfo1 () {return new ModelandView ("Order / info", "Message", "OrderInfo"); }}Ajout de l'annotation requestmapping ("Order") sur la classe OrderController, indiquant que toutes les demandes de paires doivent commencer par "root / ordre"
Le chemin de demande par exemple 1 est: http: // localhost: 8080 / springmvcnext / ordonnance / ordonnance
Exemple 1 Si @RequestMapping ("Order") sur le contrôleur est commenté, le chemin de demande correspondant est: http: // localhost: 8080 / springmvcnext / ordonnance
Utilisation de l'annotation de la mise en évidence sur la méthode du contrôleur
1. Utilisation de base commune
@ Contrôleur @ requestmapping ("Order") classe publique OrderInfoController {// Exemple 1 @RequestMapping ("OrderInfo") public ModelandView OrderInfo1 () {return new ModelandView ("Order / info", "Message", "OrderInfo"); } // Exemple 2: gérer plusieurs mappages d'URL @RequestMapping ({"info", "index"}) // ou @RequestMapping (value = {"info", "index"}) public ModelandView OrderInfo2 () {return new ModelandView ("Order / info", "Message", "OrderInfo2"); } // Exemple 3 @RequestMapping public ModelandView OrderInfo3 () {return new ModelAndView ("Order / Info", "Message", "OrderInfo3"); }}Requestmapping ne configure que l'attribut de valeur. Si aucun autre attribut n'est affiché, la valeur est omise. Vous pouvez simplement remplir les informations de mappage de l'URL. Si d'autres attributs sont spécifiés, l'attribut de valeur doit être clairement rempli.
Le chemin d'accès de l'exemple 1 ci-dessus est: http: // localhost: 8080 / springmvcnext / ordonnance / ordonnance
Exemple 2: La propriété de valeur dans l'interface de mise en évidence est un tableau, et tous les chemins d'accès sont également pris en charge pour passer un tableau Exemple 2: http: // localhost: 8080 / springmvcnext / comman
Exemple 3: Lorsque la valeur est vide, cela signifie que la méthode est l'action par défaut dans la classe. Le chemin d'accès de l'exemple 3 est: http: // localhost: 8080 / springmvcnext / commande
2. Mappage du modèle d'URL
Déclarez la variable URI dans l'annotation de la carte de demande et accédez à la valeur de l'URL de demande réelle via l'annotation @Pathvariable. L'exemple est le suivant:
@ControllerPublic Class OrderInfoController {// Exemple 10 URL avec espace réservé @RequestMapping (value = "user / {userid} / order / {orderNumber}", méthode = requestMethod.get) public ModelAndView OrderInfo4 (@pathvariable int userid, @ pathvariable orderNumber) "userId:" + userId + "orderNumber:" + orderNumber); }}Exemple 10 URL de la demande: http: // localhost: 8080 / springmvcnext / user / 12 / order / 333 Lorsqu'une demande est lancée via cette URL, SpringMVC extrait la variable × × × × × {×}} dans le modèle d'URL via @pathvariable. La variable URL sera automatiquement convertie en type correspondant. S'il ne peut pas être converti, une erreur sera renvoyée. Par exemple, essayez d'y accéder avec l'URL suivante: http: // localhost: 8080 / springmvcnext / user / xxx / order / 333 où le paramètre userId = xxx, une erreur se produit:
3. Mappage du chemin d'URL de style fourmi
Les personnages de Wildcard de style fourmi sont les suivants:
Exemple:
@ControllerPublic Class OrderInfoController {// Exemple 11 URL avec espace réservé @RequestMapping (value = "Order *", méthode = requestMethod.get) // @ requestMapping (value = "Order?", Method = requestMethod.get) // @ @ requestMapping (Value = "Order / **", méthode = requestMeth.get) Nouveau ModelAndView ("Order / Info", "Message", "OrderInfo5"); }}Exemple 11 URL de la demande: http: // localhost: 8080 / springmvcnext / order / orderDexx? OrderNumber = 12 Il peut correspondre à toutes les demandes de http: // localhost: 8080 / springmvcnext / ordonnance / orderxxxx? OrderNumber = yyyy
@RequestMapping (value = "Order?", Method = requestMethod.get) peut correspondre tel que "… / ordera? OrderNumber…." "… / Ordre? OrderNumber…" @RequestMapping (value = "order / **", méthode = requestMethod.get) peut correspondre tel que "… / order / aaa? OrderNumber…." "… / Order / BBB / CCC? OrderNumber…"
De plus, la carte de demande prend également en charge le mappage du chemin d'URL de style d'expression régulière, sautez ceci
Spécifiez le type de demande via l'attribut de méthode
Le type de prédicat de demande d'attribut de méthode fourni par requestmapping, l'exemple suivant accepte uniquement les demandes de GET
// Exemple 4 @RequestMapping (valeur = "Détail", méthode = requestMethod.get) // Vous pouvez également utiliser @GetMapping ("Detail") public ModelandView info () {return new ModelAndView ("Order / Info", "Message", "info"); }SpringMVC fournit également des annotations dédiées pour chaque type de demande:
@Getmapping
@Postmapping
@Putmapping
@Deletemapping
@Patchmapping
Spécifiez les contraintes de nom de paramètre ou de valeur des paramètres à travers les paramètres
L'attribut Params peut définir que le paramètre de demande contient des paramètres spécifiques, ou il peut également définir des contraintes sur les valeurs des paramètres, comme indiqué dans le code suivant:
// Exemple 5 Params Les paramètres qualifiés incluent OrderNumber @RequestMapping (Value = "Detail2", params = "OrderNumber") public ModelAndView Detail2 (String OrderNumber) {return new ModelAndView ("Order / Info", "Message", OrderNumber); } // Exemple 6 Params Les paramètres qualifiés Value @RequestMapping (Value = "Detail3", params = "OrderNumber! = 1222") Public ModelandView Detail3 (String OrderNumber) {return new ModelAndView ("Order / Info", "Message", OrderNumber); }Exemple 5: Les paramètres de demande qualifiés doivent contenir le Number d'Ordre de paramètre. Si le paramètre nommé OrderNumber n'est pas inclus, l'accès est refusé: Chemin d'accès: http: // localhost: 8080 / springmvcnext / ordonnance / détail2? OrderNumber = 12
Exemple 6: Les paramètres de demande qualifiés doivent contenir le paramètre OrderNumber et la valeur du paramètre ne peut pas être 1222. Chemin d'accès: http: // localhost: 8080 / springmvcnext / ordonnance / détail3? OrderNumber = 1222 Une erreur est signalée
Spécifiez les contraintes du nom du paramètre ou de la valeur des paramètres via les en-têtes
L'attribut de méthode fourni par requestmapping peut spécifier le type d'en-tête de demande. Ce n'est que lorsque le type d'en-tête de données de demande répond à la valeur spécifiée peut être accessible normalement.
// Exemple 7 Params Limited Paramètre Value @RequestMapping (value = "Headtest", en-tête = "APIKEY = 2313131313") // @ requestMapping (Value = "HeadTest", en-têtes = {"accepter = application / json"}) public ModelandView Headrer () {return new modelView ("Order / Info", "Message", "Headder"); }Exemple 7: L'en-tête de demande doit contenir Apikey: 23131313 pour retourner normalement, accéder directement et retourner l'erreur:
Ajouter des informations d'en-tête apikey: 2313131313 l'accès est réussi:
Spécifiez le type de contenu de la soumission demandée par consommation (type de contenu)
// Exemple 8 Consumer @RequestMapping (Value = "Consume", méthode = requestMethod.post, Consumer = "Application / JSON") public ModelandView Consumers (String OrderNumber) {return new ModelAndView ("Order / Info", "Message", OrderNumber); }L'exemple limite le type de paramètre de demande à Application / JSON, ce qui signifie que cette méthode ne traite que les demandes de contenu de contenu est application / json:
Le suivant réussit le test de facteur:
Définissez le format de paramètre de demande sur Application / JSON, qui peut être accessible normalement:
Définissez le format de paramètre sur X-Form-Urlencoded Error, HTTP Status 415
Spécifiez le type de contenu renvoyé via des produits (Type de contenu)
L'attribut des producteurs est utilisé pour définir le type de contenu de retour et remplit les conditions suivantes: La valeur contenant l'acceptation dans l'en-tête de la demande d'acceptation est la même que la valeur définie par le producteur, ou la demande acceptée est définie sans affichage.
// Exemple 8 produit une application de données de retour limitée / json @requestmapping (value = "produit", méthode = requestMethod.get, produmes = "application / json") public ModelAndView products (string orderNumber) {return new ModelandView ("Order / info", "message", ordonnance); }L'exemple 8 indique l'application du format de contenu de retour / JSON. Lorsque le format d'acceptation défini par le client est du texte / JSON, une erreur est signalée. Statut http 406
Lorsque le format d'acceptation défini par le client est l'application / JSON ou que la valeur d'acceptation n'est pas définie, elle peut s'exécuter normalement
Résumer
Ce qui précède est la demande de mappage de cartographie annotation de la mise en œuvre de la revue Spring MVC et apprenez de nouvelles séries de didacticiels présentés par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!