【SpringMVC从看懂到看开】2 - 控制器和@RequestMapping注解

4 控制器

回顾一下Spring MVC的执行图
在这里插入图片描述我们知道有后端控制器Controller用来解析用户的请求,并进行相应的业务处理,最后返回一个ModelAndView
实现后端控制器Controller的方式有两种,第一种是实现Controller接口,第二种是基于注解@Controller,这两种在上一篇博客【SpringMVC从看懂到看开】 1 - 初识MVC的两个实例程序已经分别提到。

5 @RequestMapping注解

使用基于注解来实现后端控制器后,我们还需要知道控制器内收对每一个请求是如何处理的,这就需要org.springframework.web.bind.annotation.RequestMapping注解类型,RequestMapping用于映射一个请求或一个方法,起注解形式为@RequestMapping,可以用于注解标注在一个方法或一个类上。

5.1 标注在方法上

标注在方法上,表示这个方法成为一个请求处理方法,它会在程序接收到对应的URL请求时被调用

@Controller
public class HelloController {
    @RequestMapping("/h1")
    public String sayHello(Model model){
        model.addAttribute("msg","Hello Spring MVC Annotation");
        return "hello";
    }
}

在这里插入图片描述

5.2 标注在类上

当标注在一个类上,该类中的所有方法都讲映射为相对于类级别的请求,表示该控制器所处理的所有请求都被映射到value属性值所指定的路径下。

@Controller
@RequestMapping("/helloController")
public class HelloController {
    @RequestMapping("/h1")
    public String sayHello(Model model){
        model.addAttribute("msg","Hello Spring MVC Annotation");
        return "hello";
    }
}

在这里插入图片描述

5.3 @RequestMapping注解的属性

在这里插入图片描述

5.3 组合注解

Spring4.3引入了组合注解来简化常用的HTTP方法的映射,组合注解有

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMaping

@GetMapping为例,@GetMapping("/helloController")相当于@RequestMapping(value = "/helloController", method = RequestMethod.GET)
省略了method属性,从而简化代码

猜你喜欢

转载自blog.csdn.net/Cap220590/article/details/107377592
今日推荐