Spring Boot 的 Controller相关知识学习

@Controller


这是一个很常见的注解了,它标在类上:
@Controller
public class UsersController {
}
表明该类是一个前端控制器,它提供接口来处理用户请求。

@RequestMapping


该注解是用来映射URL 的,它可以了, 现在类上,也可以出现在类中的方法上:
@Controller
@RequestMapping ( "/user" )
public class UsersController {     
      @RequestMapping ( "/index" )
      public String index(){
            return "index.html" ;
     }
}
写在类上相当于一个公共的前缀,后面方法的映射路径中前缀都有它。上面的前缀为 / user/index
这个注解有很多属性:

value 

像上面那样不写出属性,默认就是value ,它除了完全写出URL路径之外,还可以用一些简单的表达式来支持某种样式的URL以达到通用的目的。
如@RequestMapping(value="/user/{page}.html"),这是用在方法上的注解, page为该方法入参。如page=index,那得到的URL就是/user/index.html 。


method

该属性是用来映射对应HTTP的请求方法的,通常的HTTP请求方法有:
    GET ,用来获取URL 对应的内容。
    POST ,用来向服务器提交信息。
    HEAD ,同GET ,但不返回消息体,常用于返回URL对应的元信息,如过期时间等。
    PUT ,同POST ,向服务器提交信息,类似更新,而POST 类似新增。
    DELETE ,删除对应资源信息。
    PATCH ,类似PUT,表示信息局部更新。
上面的方法都有对应简化后的@RequestMapping:
    @GetMapping;
    @PostMapping;
    @PutMapping;
    @DeleteMapping;
    @PatchMapping.
      @GetMapping ( "/index" )
      public String index(){
            return "index.html" ;
     }

consumes 

    consumes属性是用来表示Content-Type 媒体类型的。
@ GetMapping (value= "/index" consumes="application/json" )
      public String index(){
            return "index.html" ;
     }


方法参数

Spring 的Controller 方法可接受的参数类型是很多的,比如Spring MVC 中的ModelAndView 。
    
    @PathVariable :将URL中的参数值映射到方法参数中。
@ GetMapping (value= "/index" consumes="application/json" )
      public String index( @PathVariable String page , @PathVariable Integer type){
            return "index.html" ;
     }
    Mode:Spring 中通用的MVC模型。
    ModelAndView:包含模型和视图路径的对象。
    JavaBean : JavaBean 对象。
    @RequestBody :自动将请求内容转为指定的对象,默认是使用HttpMessageConverters 转化。
    MultipartFile:文件上传对象。
    @ModelAttribute :该注解可以使变量成为Model 的一个属性。
   除此之处还有很多其他的属性。

猜你喜欢

转载自blog.csdn.net/mottohlm/article/details/80658961
今日推荐