SpringMVC注解
@RequestMaapping注解
作用: 路径映射
属性:
value/path : 映射路径名
method : 接收的请求方式
params : 指定限制请求参数的条件(必须包含的参数或值)
headers : 请求头必须包含的参数
@RequestMapping(path = "/hello", method = {RequestMethod.GET, RequestMethod.POST}, params = {"hello", "who=SpringMVC"}, headers = {"User-Agent"})
public String sayHello(){
System.out.println("Hello SpringMVC!");
return "success";
}
@RequestParam注解
作用: 把请求中指定名称的参数给控制器中的形参赋值
属性:
value/name: 请求参数中的名称
required: 请求参数中是否必须提供此参数, 默认值为true. 表示必须提供,如果不提供将报错.
@RequestMapping(path = "/testRequestParam")
public String testRequestParam(@RequestParam(name = "name", , required = false) String username){
System.out.println(username);
return "success";
}
@RequestBody注解
作用: 用于获取请求体内容. 直接使用得到的是key=value&key=value结构的数据, get请求方式不适用
属性:
required: 是否必须有请求体. 默认值为true, 当取值为true时, get方法请求会报错, 如果取值为false, get请求得到的时null.
@RequestMapping(path = "/testRequestBody")
public String testRequestBody(@RequestBody String body){
System.out.println(body);
return "success";
}
@PathVaribale注解
**作用: 用于绑定url中的占位符. 例如: 请求url中 /delete/{id}, 这个{id}就是url的占位符. **
**属性: **
value/name: 用于指定url中占位符的名称
required: 是否必须提供占位符
@RequestMapping(path = "testPathVariable/{id}")
public String testPathVariable(@PathVariable(name = "id") String id){
System.out.println(id);
return "success";
}
@RequestHeader注解
作用: 用于获取请求消息头
属性:
value/name:提供消息头名称
required: 是否必须有此消息头
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader("Accept") String header){
System.out.println(header);
return "success";
}
@CookieValue注解
作用: 用于把指定cookie名称的值传入控制器方法参数
属性:
value/name: 指定cookie的名称
required: 是否必须有此cookie
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue("JSESSIONID") String cookie){
System.out.println(cookie);
return "success";
}
@ModelAttribute注解
作用: 作用在方法上,表示当前方法会在控制器的方法之前执行. 作用在参数上, 获取指定的数据给参数赋值
属性:
value : 用于获取数据的key. key可以时POJO的属性名称, 也可以是map结构的key.
作用在方法:
@RequestMapping("/testModelAttribute")
public String testModelAttribute(@ModelAttribute("account") Account account){
System.out.println("testModelAttribute方法执行了...");
System.out.println(account);
return "success";
}
@ModelAttribute
public Account showUser(String username, Map<String, Account> map){
System.out.println("showUser方法执行了...");
//模拟查询数据库
Account account = new Account();
User user = new User();
user.setUname("uname");
user.setAge(20);
user.setDate(new Date());
account.setUser(user);
map.put("account", account);
return account;
}
@SessionAttributes注解
作用: 用于多次执行控制方法间的参数共享(作用在类上)
属性:
value: 用于指定存入的属性名称
type: 用于指定存入的数据类型
本文深入解析SpringMVC框架中的关键注解,包括@RequestMapping、@RequestParam、@RequestBody、@PathVariable、@RequestHeader、@CookieValue、@ModelAttribute及@SessionAttributes。详细介绍了每个注解的作用、属性及其在控制器中的应用实例。

5113

被折叠的 条评论
为什么被折叠?



