• SpringMVC常用注解


    1.@RequestParam

      1)作用:把请求中指定名称的参数给控制器中的形参赋值

      2)属性:value(name):请求参数中的名称

         required:请求参数中是否必须提供此参数,默认值:true,表示必须提供该参数,若不提供,将会报错

          @RequestMapping("/testRequestParam")
          public String testRequestParam(@RequestParam(value="name") String username){
              System.out.println(username);
              return "success";
          }
          访问该方法时,请求中的参数名称必须为"name",不传或者传其他参数名的参数将会报错
          访问示例:localhost:8080/testRequestParam?name=Kavins(参数必须存在且参数名为name)
    2.@RequestBody
      1)作用:用于获取请求体内容,直接使用得到的是key=value&key=value...结构的数据,get请求方式不适用
      2)属性:required:是否必须有请求体,默认值是true,当取值为true时,get请求方式会报错,如果值为false,get请求得到的是null
           @RequestMapping("/testRequestBody")
        public String testRequestBody(@RequestBody String body){
            System.out.println(body);
            return "success";
        }        
        
        如图提交post请求
       方法中的参数body获取的为post请求的整个请求体(姓名+年龄),而不是指其中的一个参数
       后台打印结果为:username=Kavins&age=18
    3.@PathVaribale
    1)作用:用于绑定url中的占位符,例如:请求url中/delete/{id},{id}就是url占位符,url支持占位符是spring3.0之后加入的,是SpringMVC支持rest风格url的一个重要标志
     2)属性:value:用于指定url中占位符名称
         required:是否必须提供占位符,默认为true
        @RequestMapping("/testPathVariable/{sid}")
        public String testPathVariable(@PathVariable(value="sid") String id){
            System.out.println(id);
            return "success";
        }
        访问示例:http://localhost:8080/springmvc/anno/testPathVariable/100
        后台将会打印100
    4.@RequestHeader
      1)作用:用于获取请求消息头
      2)属性:value:提供消息头名称
          required:是否必须有此消息头,默认值为true
        @RequestMapping("/testRequestHeader")
        public String testRequestHeader(@RequestHeader(value="Accept") String header){
            System.out.println(header);
            return "success";
        }
        打印结果:text/html, application/xhtml+xml, image/jxr, */*
    5.@ModelAttribute
      1)作用:该注解是SpringMVC4.3版本以后新加入的,他可以用来修饰方法和参数
          修饰方法:表示当前方法会在控制器的方法之前先执行,他可以修饰没有返回值的方法,也可以修饰有具体返回值的方法.
          参数:获取指定的数据给参数赋值
      2)属性:value:用于获取数据的key,key可以使POJO类的属性名称,也可以是map结构的key
      修饰有返回值方法

        @RequestMapping("/testModelAttribute")
        public String testModelAttribute(User user){
            System.out.println("testModelAttribute执行了");
            System.out.println(user);
            return "success";
        }
    
        /**
         * 该方法会先执行(有返回值),返回值会传给控制器方法的user参数
         */
        @ModelAttribute
        public User showUser(String username,Integer age){
            System.out.println("showUser执行了...");
            //通过用户查询数据库(模拟)
            User user = new User();
            user.setUsername(username);
            user.setAge(age);
            user.setDate(new Date());
            return user;
        }
    
    
        点击提交后台打印:

            showUser执行了...
         testModelAttribute执行了
         User{username='Kavins', age=18, date=Sat Feb 15 19:15:34 CST 2020}

         //修饰没有返回值的方法:
         @RequestMapping("/testModelAttribute")
         public String testModelAttribute(@ModelAttribute("userMap") User user){
            System.out.println("testModelAttribute执行了");
            System.out.println(user);
            return "success";
        }
         //该方法会先执行(没有返回值,将user封装在了key值为userMap的map中,在控制器方法的参数中使用@ModelAttribute("userMap")得到user对象)
        @ModelAttribute
        public void showUser(String username,Integer age,Map<String,User> map){
            System.out.println("showUser执行了...");
            //通过用户查询数据库(模拟)
            User user = new User();
            user.setUsername(username);
            user.setAge(age);
            user.setDate(new Date());
            map.put("userMap",user);
        }
          打印结果:

            showUser执行了...
             testModelAttribute执行了
             User{username='Kavins', age=18, date=Sat Feb 15 19:20:02 CST 2020}

        

     
     

        
    
    
     


     
    
    
  • 相关阅读:
    【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
    【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
    【高斯消元】BZOJ 1013: [JSOI2008]球形空间产生器sphere
    【数学】[BZOJ 3884] 上帝与集合的正确用法
    【数学/扩展欧几里得/线性求逆元】[Sdoi2008]沙拉公主的困惑
    【数学/扩展欧几里得/Lucas定理】BZOJ 1951 :[Sdoi 2010]古代猪文
    【扩展欧几里得】Bzoj 1407: [Noi2002]Savage
    [51nod2935] 土地划分
    [51nod2982] 大逃杀
    [BZOJ1005] HNOI2008 明明的烦恼
  • 原文地址:https://www.cnblogs.com/kavins/p/12315757.html
Copyright © 2020-2023  润新知