zoukankan      html  css  js  c++  java
  • 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}

        

     
     

        
    
    
     


     
    
    
  • 相关阅读:
    70.BOM
    69.捕获错误try catch
    68.键盘事件
    523. Continuous Subarray Sum
    901. Online Stock Span
    547. Friend Circles
    162. Find Peak Element
    1008. Construct Binary Search Tree from Preorder Traversal
    889. Construct Binary Tree from Preorder and Postorder Traversal
    106. Construct Binary Tree from Inorder and Postorder Traversal
  • 原文地址:https://www.cnblogs.com/kavins/p/12315757.html
Copyright © 2011-2022 走看看