SpringBoot Web开发中的常用注解总结【持续更新】

SpringBoot常用注解


  • 注意注解均在controller类下使用

@PathVariable注解

注解作用

通过该注解,可以将url请求中的占位符对应参数绑定到处理器方法的参数中

通过@PathVariable(“参数名称”)可以在传入参数名接受参数名不符时,进行绑定

Java代码如下
@RequestMapping("aa/{username}/mm/{password}")
//@PathVariable参数可以缺省@PathVariable String username
//此时前后端参数名称需要对应
public String tkp(@PathVariable("username") String username, @PathVariable("password")String pwd){
    System.out.println(username);
    System.out.println(pwd);
    return "success";
}
访问方法:

http://localhost:8080/aa/myName/mm/myPwd

输出结果:


@RequestParam注解

注解作用

该注解可以解析用户在前端拼接的参数,如:key=value1&key2=value2的参数列表。

通过该注解可以将url中参数key对应value绑定到方法参数中

Java代码
@RequestMapping("param")
//同样可以缺省
public String param(@RequestParam String uu,@RequestParam("name") String username){
    System.out.println(uu);
    System.out.println(username);
    return uu+"--"+username;
}
访问方法

由?开始的参数列表,key=value格式

http://localhost:8080/param?uu=newUU&name=Username

结果

在这里插入图片描述


@RequestBody注解

注解作用

在同步的状态下,接收前台表单提交的实体内容。具体来说,该注解会将前端传递的Json或xml格式的数据转换为Java对象,使用该注解绑定参数。

Java代码
@RequestMapping("resp")
//http传输的最终都是字符串,这里意为将传来的json格式的请求体对应字符串绑定到@RequestBody注解下的body字符串中
    public String resp(@RequestBody String body){
        System.out.println(body);
        return body;
    }
访问方法:

html表单;

<!--这里可以写为/resp,意为从根目录开始,否则会访问/res/resp路径-->
<form action="resp" method="post">
    <input type="text" name="username"> <br>
    <input type="password" name="password"><br>
    <input type="submit" value="提交"/>
</form>

提交表单:

在这里插入图片描述

结果

在这里插入图片描述

问题

为什么不能接受类作为参数

@RequestMapping("resp")
public String resp(@RequestBody Car car){
    System.out.println(car);
    return "success";
}

@CookieValue注解


@RequestHeader注解

  • 该注解将获得HTTP中的Header下内容。具体内容列表如下

在这里插入图片描述

Java代码
@RequestMapping("reqHeader")
public String reqHeader(@RequestHeader("Accept") String header){
    return header;
}

@RequestHeader中参数可以用来指定获得RequestHeader中的具体特定内容,这里获取的是Accept对应内容

结果

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


@RequestAttribute注解

@RequestAttribute注解用来标注在控制器方法的参数上,参数的值来自Request作用域。

  • 需要注意的是,这里应该将Controller类的@RestController注解改为@Controller,因为@RequestBody注解会自动把返回值作为字符串进行输出
Java代码
@Controller
public class newController {
    @RequestMapping("/test1")
    public String reqTest1(HttpServletRequest request){
        request.setAttribute("name","xxx");
        return "forward:/test2";
    }

    @RequestMapping("/test2")
    public String reqTest2(@RequestAttribute("name") String name){
        System.out.println(name);
        return name;
    }
}

因为没有配置“xxx”对应的视图,所以这里浏览器返回页面会报错,自己处理一下即可。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值