版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44580977/article/details/97709291
1.RequestParam
使用说明
使用示例
理解:这个注解就是规定请求体中是否必须有注解里配置的key值。value required
2. RequestBody
使用说明
使用示例
理解:RequestBody这个注解其实就是把请求的请求体内容赋给所注解的形参。因为 get是没有请求体的,所有要注意required 值的设置,默认是true,也就是有请求体。
3. PathVaribale
使用说明,(REST风格URL可以看下期)
使用示例
理解:这个注解表示的提供一个占位符,这个占位符在url 中,/user/{ id }, HTTP 协议操作方式Delete 原本传入形参是这样的,/user/delete?id={ id },这种注解就让的请求到delete 的controller 类变得更加灵活。
4.RequestHeader
使用说明
使用示例
理解:简简单单 就是设置请求头的key,取出对应的value,required:是否必须有此消息头。
5.CookieValue
使用说明
使用示例
理解:设置value值,将值赋给形参,required:是否必须有此 cookie。
6.ModelAttribute
使用说明
基于 POJO 属性的基本使用示例
基于 Map 的应用场景示例 1:ModelAttribute 修饰方法带返回值
代码语言:javascript复制 当前端请求这个方法时,会先执行有ModelAttribute注解的方法,
/**
* ModelAttribute注解
* @return
*/
@RequestMapping(value="/testModelAttribute")
public String testModelAttribute( User user){
System.out.println("testModelAttribute执行了...");
System.out.println(user);
return "success";
}
代码语言:javascript复制 ModelAttribute注解的方法
/**
* 该方法会先执行
*`在这里插入代码片`
*/
@ModelAttribute
public User showUser(String uname){
//前端没用传完整的user内容,
//因为这里是先于url请求的方法执行的,
//所以可以利用这个注解去,
//完善user(这里的完善一般指的时查数据库),然后返回给,要请求的方法
System.out.println("showUser执行了...");
// 通过用户查询数据库(模拟)
User user = new User();
user.setUname(uname);
user.setAge(20);
user.setDate(new Date());
return user;
//这里的返回值会赋给 前端请求testModelAttribute方法的形参user
}
基于 Map 的应用场景示例 1:ModelAttribute 修饰方法不带返回值
代码语言:javascript复制 /**
* ModelAttribute注解
* @return
*/
@RequestMapping(value="/testModelAttribute")
public String testModelAttribute(@ModelAttribute("abc") User user){
System.out.println("testModelAttribute执行了...");
System.out.println(user);
return "success";
}
代码语言:javascript复制 @ModelAttribute
public void showUser(String uname, Map<String,User> map){
System.out.println("showUsjaver执行了...");
// 通过用户查询数据库(模拟)
User user = new User();
user.setUname(uname);
user.setAge(20);
user.setDate(new Date());
map.put("abc",user);
}
理解:这个注解虽然看着很烦,但只要理解他的功能就是完善前端传来的参数,给控制器处理。
7.SessionAttribute
使用说明
使用示例