SpringMVC常用注解

1、@Controller

        声明该类为SpringMVC中的Controller

        控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中使用@Controller ,就无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。

2、@RequestMapping

        是一个用来处理请求地址映射的注解,可用于类或方法上

        可以作用在方法和类上:作用在类上:第一级的访问目录;作用在方法上:第二级的访问目录。

        RequestMapping注解有六个属性:

  • value:指定请求的实际地址

  • method:指定请求的method类型, GET、POST、PUT、DELETE等;

  • consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;

  • produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

  • params:指定request中必须包含某些参数值是,才让该方法处理。

  • headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。

3、@GetMapping&@ PostMapping

        简化@RequestMapping的写法

        @RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)新方法可以简化为:@GetMapping(“/get/{id}”)

        @GetMapping用于处理请求方法的GET类型,@ PostMapping用于处理请求方法的POST类型等。

4、@RequestParam

        用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter(“name”),它有三个常用参数:

  • defaultValue = “0”:表示设置默认值
  • required = false:通过boolean设置是否是必须要传入的参数
  • value = “isApp”:表示接受的传入的参数类型

5、@ResponseBody&@RequestBody

         @ResponseBody:作用是将 controller 的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到 response对象的 body 区,通常用来返回 JSON 数据或者是 XML 数据。。

        @RequestBody:作用在形参列表上时,用于将前台发送过来固定格式的数据(xml 格式或者 json 等)封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的,由 HttpMessageConverter 进行解析,然后封装到形参上。

@RequestMapping(value = "login")
@ResponseBody // 将请求中的数据写入user对象中,把前端携带的信息封装成后端具体的bean,后端通过操作bean实现后续业务。
public Person login(@RequestBody User user) {
    retrun user;
}

6、@RestController

        等价于 @Controller + @ResponseBody。 表示所有的请求都支持对象格式(json格式)的数据返回。

7、@PathVariable

        用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

@RequestMapping(value=“/users/{userId}/topics/{topicId}”)
public String test( @PathVariable(value=“userId”) int userId, @PathVariable(value=“topicId”) int topicId) {

}

8、@ModelAttribute

1) 可以用在方法的参数上:注解在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中

2)用在Controller的方法上:注解在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中

9、@SessionAttributes

        默认情况下Spring MVC将模型中的数据存储到request域中。当一个请求结束后,数据就失效了。如果要跨页面使用。那么需要使用到session。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中。

        @SessionAttributes的参数:

  • names:这是一个字符串数组。里面应写需要存储到session中数据的名称。
  • types:根据指定参数的类型,将模型中对应类型的参数存储到session中。
  • value:其实和names是一样的。

你可能感兴趣的:(Spring,java,spring,mvc,spring)