SpringMVC常用注解

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: 用于指定存入的数据类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值