1、概述
Spring MVC框架提供了功能强大的注解,大大简化了代码开发的同时也提升了程序的可扩展性
2、注解
2.1、@RequestMapping
Spring MVC通过@RequestMapper 注解将URL请求与业务方法进行映射
在控制器的类定义处以及方法定义处都可添加@RequestMapper,在类定义处添加@RequestMapping注解,相当于多了一层访问路径
@RequestMapping("/")
public class IndexController {
@RequestMapping(value = "/index",method = RequestMethod.GET)
public String index(){
return "index";
}
}
参数
2.1.1、value:指定URL请求的实际地址,是@RequestMapping的默认值
@RequestMapping("hello") 等价于 @RequestMapping(value = "hello")
2.1.2、method:请求指定的method类型,GET/POST/PUT/DELETE等
@RequestMapping(value = "hello" ,method = RequestMethod.POST)
表示只有POST请求可以访问该方法,若使用GET请求访问,直接报错
2.1.3、params:指定request中必须包含某些参数值,否则无法调用该方法。
@RequestMapping(value = "hello", params={"name","id=10"})
URL请求必须包含name和id属性,并且id的值必须为10,才能调用
2.2、参数绑定
params是对URL请求的参数进行限制,不满足条件的URL无法到达业务的方法,这个特性并不是我们开发中常用到的,我们需要用到的是业务方法中获取URL的参数,实现这一步很简单
- 在业务方法定义时声明参数列表
- 给参数列表添加@RequestParam注解
@RequestMapping(value = "paramsBind")
public String paramsBind(@ReqeustParam("name")String name ,@RequestParam("id")int id )
将URL请求的参数name和id分别赋给形参name和id,同时进行数据类型的转换,URL参数都是String类型的,根据形参的数据类型,将id转换为int类型,所以可以看到打印的num值为20,完成了数学运算
上述这些工作都是由HandlerAdapter来完成的。
2.3、Spring MVC同时也支持RESTful风格的URL,具体见Spring Boot文档中的介绍
2.4、使用pojo绑定参数
Spring MVC会根据请求的数据名和pojo属性名进行自动匹配,自动为该对象填充属性值,并且支持级联属性。
@ReqeustMapping("/addUser")
public String getPOJO(User user )