当前位置: java基础教程 > 31-springMVC > 阅读正文

@Controller,@RequestMapping

2021.6.14.   949 次   814字

@Controller

SpringMVC中, @Controller注解, 作用于类上, 标明当前类是一个Controller, 即业务层对象,

这个注解, 可以简单理解为, 标明一个类为 Servlet, 此注解无属性

和SpringBoot中相似, 仅有这个注解, 并没有什么意义, 原因是它必须配合其他注解一起使用, 比如使用了@RequestMapping, 它才是真正的请求处理器

@RequestMapping

此注解, 作用于类, 或者方法上, 用于处理请求

简单理解为, 原 WebServlet注解, 不过区别还是很大的

仅使用 @Controller 和 @RequestMapping, 无法直接返回数据, 例如

@Controller
public class HelloController {

    @RequestMapping(value="/hello",method= RequestMethod.GET)
    public String sayHello(){
        return "hello";
    }
}

这是因为, SpringMVC 需要配上视图解析器, 而视图解析器仅支持以下模板

  • FreeMarker
  • Groovy
  • Thymeleaf (Spring 官网使用这个)
  • Velocity
  • JSP

对于前后端分离, 还需要@RequestBody, 这样它才能直接返回

requestMapping的属性如下:

  • name –> 相当于servlet中的name
  • path –> 相当于servlet中的urlPattern
  • value –> 相当于servlet的value, 一个参数时默认
  • params –> 相当于servlet的params
  • method –> 指定请求的方式
  • header –> 指定请求头
  • consumers –> 指定请求参数的格式
  • produces –> 指定响应的格式, 即contentType

注解用于类上时, 会叠加到方法上, 比如类上path=user, 那么此方法内的所有方法都会添加到方法路径添加一个user起始路径

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群