Maison Java javaDidacticiel 5 annotations couramment utilisées dans springmvc

5 annotations couramment utilisées dans springmvc

Jul 20, 2019 pm 04:18 PM
java spring

5 annotations couramment utilisées dans springmvc

Tutoriels recommandés : Tutoriel Printemps

1. Annotations du composant :

1 @Component Ajoutez l'annotation @Component avant la définition de la classe, ce sera le printemps. Identification des conteneurs et conversion en haricots.

2. @Repository annote la classe d'implémentation Dao (spécial @Component)

3. @Service est utilisé pour annoter la couche de logique métier, (spécial @Component)

4. @Controller est utilisé pour annoter la couche de contrôle, (Spécial. @Component)

Les quatre annotations ci-dessus sont toutes annotées sur la classe La classe annotée sera initialisée en tant que bean d'ici le printemps puis gérée de manière uniforme.

5 annotations couramment utilisées dans springmvc

2. Annotations de type de requête et de paramètre :

1. @RequestMapping : utilisé pour traiter le mappage d'adresses de requête, qui peut être appliqué aux classes et aux méthodes.

Valeur : Définir l'adresse de mappage de la demande de requête

Méthode : Définir la méthode de demande d'adresse, y compris [GET , POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE.] La requête get est acceptée par défaut. Si la méthode de requête est différente de la méthode définie, la requête échouera.

 Quantityparams : Définissez les valeurs des paramètres qui doivent être incluses dans la requête de requête.

Quantityheaders : Définissez que la requête doit contenir certains en-têtes de requête spécifiés, tels que : RequestMapping(value = "/something", headers = "content-type=text/*" ) indique que la demande doit contenir l'en-tête Content-type de "text/html", "text/plain" pour être une demande correspondante.

 Quantityconsume : Définissez le type de contenu dont la soumission est demandée.

Quantitys : Spécifiez le type de contenu à renvoyer Ce n'est que lorsque le type (Accepter) dans l'en-tête de la requête contient le type spécifié qu'il renverra

@RequestMapping(value="/requestTest.do",params = {"name=sdf"},headers = {"Accept-Encoding=gzip, deflate, br"},method = RequestMethod.GET)
     public String getIndex(){
         System.out.println("请求成功");
         return "index";
     }
Copier après la connexion
<🎜. >

Le code ci-dessus indique que la méthode de requête est une requête GET. Les paramètres de la requête doivent inclure le paramètre name=sdf, puis l'en-tête de la requête doit avoir le type header Accept-Encoding=gzip, deflate, br.

5 annotations couramment utilisées dans springmvc

De cette manière, une demande peut être restreinte via des annotations.

2.@RequestParam : utilisé pour obtenir la valeur du paramètre entrant

Quantityvalue : le nom du paramètre

Quantity requis : définition Si le paramètre entrant est requis, la valeur par défaut est true (similaire à l'attribut params de @RequestMapping)

@RequestMapping("/requestParams1.do")
    public String requestParams1(@RequestParam(required = false) String name){
        System.out.println("name = "+name);
        return "index";
    }
    @RequestMapping("/requestParams2.do")
    public String requestParams2(@RequestParam(value = "name",required = false) String names){
        System.out.println("name = "+names);
        return "index";
    }
Copier après la connexion

Les deux méthodes de saisie des paramètres sont les mêmes lorsque le nom du. La valeur déclarée est affichée, entrez le paramètre. Le nom du paramètre est le même que la valeur. S'il n'y a pas de déclaration explicite, comme déclaré de la première manière, le nom du paramètre d'entrée est le même que le nom de la variable du paramètre de fonction.

3.@PathViriable : utilisé pour définir les valeurs des paramètres de chemin

●value : le nom du paramètre

●required : définit si le paramètre entrant est une valeur obligatoire

@RequestMapping("/{myname}/pathVariable2.do")    public String pathVariable2(@PathVariable(value = "myname") String name){
        System.out.println("myname = "+name);        return "index";
    }
Copier après la connexion

Ce chemin déclare {myname} comme paramètre de chemin, puis ce chemin sera N'importe quelle valeur, @PathVariable pourra obtenir la valeur du chemin en fonction de la valeur.

4.@ResponseBody : En agissant sur la méthode, le résultat complet du retour peut être renvoyé dans un certain format, tel que json ou format XML.

 @RequestMapping("/{myname}/pathVariable2.do")
      @ResponseBody
      public String pathVariable2(@PathVariable(value = "myname") String name){
          System.out.println("myname = "+name);
          return "index";
      }
Copier après la connexion

5 annotations couramment utilisées dans springmvc

Il renvoie non pas une page, mais une chaîne " index " est imprimé directement sur la page, ce qui est en fait similaire au code suivant.

PrintWriter out = resp.getWriter();
 out.print("index");
 out.flush();
Copier après la connexion

5、@CookieValue:用于获取请求的Cookie值

 @RequestMapping("/requestParams.do")
      public String requestParams(@CookieValue("JSESSIONID") String cookie){
          return "index";
      }
Copier après la connexion

6、@ModelAttribute:

  用于把参数保存到model中,可以注解方法或参数,注解在方法上的时候,该方法将在处理器方法执行之前执行,然后把返回的对象存放在 session(前提时要有@SessionAttributes注解) 或模型属性中,@ModelAttribute(“attributeName”) 在标记方法的时候指定,若未指定,则使用返回类型的类名称(首字母小写)作为属性名称。 

@ModelAttribute("user")
    public UserEntity getUser(){
        UserEntity userEntityr = new UserEntity();
        userEntityr.setUsername("asdf");
        return userEntityr;
    }

    @RequestMapping("/modelTest.do")
    public String getUsers(@ModelAttribute("user") UserEntity user){
        System.out.println(user.getUsername());
        return "/index";
    }
Copier après la connexion

  如上代码中,使用了@ModelAttribute("user")注解,在执行控制器前执行,然后将生成一个名称为user的model数据,在控制器中我们通过注解在参数上的@ModelAttribute获取参数,然后将model应用到控制器中,在jsp页面中我们同样可以使用它,

 <body>
      ${user.username}
 </body>
Copier après la connexion

7、@SessionAttributes

  默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。配合@ModelAttribute("user")使用的时候,会将对应的名称的model值存到session中,

@Controller
@RequestMapping("/test")
@SessionAttributes(value = {"user","test1"})
public class LoginController{
    @ModelAttribute("user")
    public UserEntity getUser(){
        UserEntity userEntityr = new UserEntity();
        userEntityr.setUsername("asdf");
        return userEntityr;
    }

    @RequestMapping("/modelTest.do")
    public String getUsers(@ModelAttribute("user") UserEntity user ,HttpSession session){
        System.out.println(user.getUsername());
        System.out.println(session.getAttribute("user"));
        return "/index";
    }
}
Copier après la connexion

  结合上一个例子的代码,加了@SessionAttributes注解,然后请求了两次,第一次session中不存在属性名为user的值,第二次请求的时候发现session中又有了,这是因为,这是因为第一次请求时,model数据还未保存到session中请求结束返回的时候才保存,在第二次请求的时候已经可以获取上一次的model了

1068779-20171027175359008-1504110330 (1).png

注意:@ModelAttribute("user") UserEntity user获取注解内容的时候,会先查询session中是否有对应的属性值,没有才去查询Model。

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Racine carrée en Java Racine carrée en Java Aug 30, 2024 pm 04:26 PM

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Nombre parfait en Java Nombre parfait en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Générateur de nombres aléatoires en Java Générateur de nombres aléatoires en Java Aug 30, 2024 pm 04:27 PM

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Numéro Armstrong en Java Numéro Armstrong en Java Aug 30, 2024 pm 04:26 PM

Guide du numéro Armstrong en Java. Nous discutons ici d'une introduction au numéro d'Armstrong en Java ainsi que d'une partie du code.

Weka en Java Weka en Java Aug 30, 2024 pm 04:28 PM

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

See all articles