SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发。
简单来说,SpringMVC的功能就是处理请求。
@RequestMapping
作用:处理请求映射(就是URL过来了映射到哪个方法)
可用于类或方法上:
- 类:作为父路径
- 方法:定位到某个方法
@RequestMapping("/hello")
@RequestMapping(value="/hello")
@RequestMapping(value="/add",method="POST") //默认是get
组合注解
@GetMapping等于@RequestMapping(method = "GET")
@PostMapping等于@RequestMapping(method = "POST")
@RequestParam
作用:参数控制
必须带参数才会执行test方法,否则不执行
@RequestMapping("/list")
public String test(@RequestParam Long parentId) {
}
无参也会执行test方法
@RequestMapping("/list")
public String test( Long parentId) {
}
@RequestParam参数
required=“true” 默认,也就是必须带参数可设为false
defaultValue=“” 当请求无参时采用的默认值
value=“” 指定属性别名
@PathVariable
作用:动态参数绑定,也就是URL传过来不一样的参数,但是映射到同一个方法处理
@RequestMapping("helllo/{id}")
public void test(@PathVariable("id") Integer id ){
}
@RequestBody和@ResponseBody
@ResponseBody:返回值通常解析为跳转路径,但加了@ResponseBody,就会返回json字符串。
@RequestBody:接收前端传递给后端的json字符串中的数据;GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
【通常json字符串匹配bean,也就是model,实体类】(实测可以不加@RequestBody也可以识别)
@RequestBody User user 等同于 User user
Model,ModelMap,ModelAndView的区别
Model的继承关系:Model是一个接口,继承ModelMap类,ModelMap继承LinkedHashMap。
作用:返回给前端数据。(类似于request对象的setAttribute方法的作用)
ModelAndView除了传递数据外,还可以设置转向地址,也就是跳转到哪个页面。(手动new)