一、类注解
@Controller、@RestController注解都是用来标注控制器类,处理由DispatcherServlet 分发的请求。
- @Controller:将请求的数据经过业务处理层处理之后封装成一个Model ,把该Model返回给对应的View进行展示,注解返回的是一个页面。
- @RestController:返回的是数据
二、方法注解
- @ResponseBody的作用是将后端以
return
返回的javabean类型数据转为json类型数据。
注:@ResponseBody要写在方法名上
三、参数注解
注意要写在方法的参数前,不能写在方法名上方
-
@RequestParam:处理contentType为application/x-www-form-urlencoded的数据;
同一个方法中可以使用多个@RequestParam注解;
image.png
-
@RequestBody:处理contentType不为application/x-www-form-urlencoded的数据,比如application/json;主要作用于将前端传来的json格式的数据转为自己定义好的javabean对象,
@RequestBody注解不可以使用多次,可以定义一个对象去接收所有的参数;
image.png
四、组合使用
- 如果需要返回的是数据(如:XML或自定义的metatype等数据类型)时,@RestController==@Controller+@Responsebody:
- 如果要返回的是jsp、html等页面时有两种方式:
- 仅使用Controller类注解,不添加方法注解
-
使用RestController类注解,方法体配合ModelAndView使用
image.png
网友评论