@PathVariable、@RequestParam和@RequestBody的区别
1. @PathVariable
@RequestMapping(value="/{id}")
public String getId(@PathVariable(value="id") String id) {
return id;
}1.1 @PathVariable 映射 URL 绑定的占位符
- 带占位符的 URL 是 Spring3.0 新增的功能
- 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器(controller)处理方法的形参中,URL 中的 {xx} 占位符可以通过@PathVariable(“xx“) 绑定到操作方法的形参中
- 是根据请求方法进行类的区别
1.2 @PathVariable的参数
- String value:可指定占位符 { } 中的参数名,若只指定value这一个属性可省略属性名不写,若占位符中的参数名和处理方法中的参数名相同可省略此属性。
- String name:和value一样,两个属性指定其一即可。
- boolean required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常
2. @RequestParam
@RequestMapping(value="/user")
public String getName(@RequestParam(value="name") String name) {
return name;
}在SpringMVC框架中,获取URL中的参数,也就是?key1=value1&key2=value2这样的参数列表。通过注解@RequestParam将URL中的参数绑定到处理函数方法的变量中。
2.1 @RequestParam 用于将指定的请求参数赋值给方法中的形参
- 如果参数前写了@RequestParam(x),那么前端必须有对应的x名字才行(不管其是否有值),如果没有x名的话,那么请求会出错。
- 如果参数前不写@RequestParam(x),那么就前端可以有可以没有对应的x名字才行,如果有x名的话,那么就会自动匹配;没有的话,请求也能正确发送。
2.2 @RequestParam的参数
- String value:请求中传入参数的名称,如果不设置value值,则会默认为该变量名。
- String name:和value一样,两个属性指定其一即可。
- boolean required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常
- String defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。
3. @RequestBody
@PostMapping("/editUser")
public void edit(@RequestBody User user){
System.out.println(user);
}@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);使用@RequestBody接收数据时,是用POST等方式进行提交。
- 后端@RequestBody注解对应的类,会根据json字符串中的key来匹配对应实体类的属性,如果匹配一致且json中的该key对应的值符合实体类的对应属性的类型要求时,会调用实体类的setter方法将值赋给该属性。
- json字符串中,如果value为"“的话,后端对应属性如果是String类型的,那么接受到的就是”",如果是后端属性的类型是Integer、Double等类型,那么接收到的就是null。
- json字符串中,如果value为null的话,后端对应收到的就是null。
- 如果某个参数没有value的话,在传json字符串给后端时,要么干脆就不把该字段写到json字符串中;要么写value时, 必须有值,null 或""都行。
到此这篇关于@PathVariable、@RequestParam和@RequestBody的区别和使用的文章就介绍到这了,更多相关@PathVariable @RequestParam @RequestBody内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- @RequestParam注解加与不加有什么区别
- 基于params、@PathVariabl和@RequestParam的用法与区别说明
- 基于@RequestParam name和value属性的区别
- @RequestBody,@RequestParam和@Param的区别说明
- 方法参数属性params,@PathVariable和@RequestParam用法及区别
- @RequestParam 和@RequestBody注解的区别解析
- Springboot中@RequestParam和@PathVariable的用法与区别详解
- Spring中@PathVariable和@RequestParam注解的用法区别
- SpringBoot中@PathVariable、@RequestParam和@RequestBody的区别和使用详解
- @RequestAttribute和@RequestParam注解的区别及说明
- springMVC中@RequestParam和@RequestPart的区别
相关文章
Spring Boot 配置文件类型properties 格式与yml 格式
这篇文章主要介绍了Spring Boot 配置文件类型properties 格式与yml 格式,文章围绕主题展开详细内容,具有一定的参考价值,需要的小伙伴可以参考一下2022-05-05
Spring实战之使用ClassPathResource加载xml资源示例
这篇文章主要介绍了Spring实战之使用ClassPathResource加载xml资源,结合实例形式分析了Spring使用ClassPathResource加载xml资源的具体实现步骤与相关操作技巧,需要的朋友可以参考下2019-12-12
java:程序包com.xxx.xxx不存在报错万能解决办法
这篇文章主要给大家介绍了关于java:程序包com.xxx.xxx不存在报错万能解决办法,这个问题曾逼疯初学者的我,不过弄清楚原理后就很简单了,文中通过图文介绍的非常详细,需要的朋友可以参考下2023-12-12


最新评论