我是靠谱客的博主 懦弱鼠标,最近开发中收集的这篇文章主要介绍Spring @RequestParam @RequestBody @PathVariable 等参数绑定注解详解背景 正文 ,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
背景
昨天一个人瞎倒腾spring boot,然后遇到了一点问题,所以把这个问题总结一下。
主要讲解request 数据到handler method 参数数据的绑定,所用到的注解和什么情形下使用。
正文
注解名 | 应用场景描述 | 调用示例 | 示例代码 |
---|---|---|---|
@PathVariable | 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上 | GET [host]/users/{id} | @GetMapping(value = "/{id}") public User getUserById(@PathVariable Long id) { return users.get(id); } |
@RequestHeader | @RequestHeader 注解, 可以把Request请求header部分的值绑定到方法的参数上 | http request head Host localhost:8080 Accept application/json Accept-Encoding gzip,deflate Keep-Alive 300 | @GetMapping public String getChartset(@RequestHeader("Accept-Encoding") String encoding) { //… } |
@CookieValue | @CookieValue 可以把Request header中关于cookie的值绑定到方法的参数上 | cookie值 JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84 | @GetMapping("/displayHeaderInfo") public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie) { //… } |
@RequestParam | A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况; (String–> 简单类型的转换操作由ConversionService配置的转换器来完成) 因为使用request.getParameter()方式获取参数,所以可以处理 GET 方式中queryString的值,也可以处理POST 方式中 body data的值;B) 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式 GET、POST ;C) 该注解有两个属性: value、required; value:用来指定要传入值的id名称; required:用来指示参数是否必须绑定; | GET [host]/users?id={id} | @GetMapping(value = "/{id}") public User getUserById(@RequestParam Long id) { return users.get(id); } |
@RequestBody | 该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等; 它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。 | PUT [host]:8080/users/3 RequestBody { "name": "小鸭", "age": 23 } | @PutMapping(value = "/{id}") public String updateUser(@PathVariable Long id, @RequestBody User user) { //… } |
@ModelAttribute | 该注解有两个用法,一个是用于方法上,一个是用于参数上; 用于方法上时: 通常用来在处理@RequestMapping之前,为请求绑定需要从后台查询的model; 用于参数上时: 用来通过名称对应,把相应名称的值绑定到注解的参数bean上;要绑定的值来源于: A) @SessionAttributes 启用的attribute 对象上; B) @ModelAttribute 用于方法上时指定的model对象; C) 上述两种情况都没有时,new一个需要绑定的bean对象,然后把request中按名称对应的方式把值绑定到bean中。 | POST [host]/users/1/aaa/11 | @PostMapping(value = "/{id}/{name}/{age}") public String addUser(@ModelAttribute User user) { //… } |
来自为知笔记(Wiz)
转载于:https://www.cnblogs.com/snifferhu/p/6203670.html
最后
以上就是懦弱鼠标为你收集整理的Spring @RequestParam @RequestBody @PathVariable 等参数绑定注解详解背景 正文 的全部内容,希望文章能够帮你解决Spring @RequestParam @RequestBody @PathVariable 等参数绑定注解详解背景 正文 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复