SpringMVC中Controller层获取前端请求参数的方式汇总
1、SpringMVC自动绑定
在controller层方法中定义形参,若请求时参数名、参数类型相同,则SpringMVC会自动绑定。
/** * @description: 测试springmvc自动绑定 * @author: Vinci * @date: 2023/8/23 16:32 **/ @GetMapping("/automaticallyBindParameters") public String automaticallyBindParameters(String message,String test){ return "message="+message + ",test="+test; }
下面使用PostMan进行测试发现,无论是将参数直接拼接到URL还是写在form-data里;只要参数类型和参数名与方法形参相同,则会自动绑定
2、使用@RequestParam 注解进行接收
当controller层中的方法形参名与请求参数名不同时,可使用@RequestParam进行映射
@RequestParam中的value属性指定请求参数名;
required属性指定该参数是否是必须传入的,默认是true(必须传入) ;
defaultValue属性来指定当前参数的默认值(当形参没有传入值时生效)
/** * @description: 测试@RequestParam注解 * @author: Vinci * @date: 2023/8/24 8:28 **/ @GetMapping("/testRequestParam") public String testRequestParam( @RequestParam(value = "number",required = false,defaultValue = "1") int i ){ return "number=" + i; }
接下来使用PostMan进行测试发现,传值则接收到值,不传值则使用默认值
3、@RequestBody注解
@RequestBody 注解 可将 JSON数据 转为 Bean对象, 与@ResponseBody注解作用相反
(1) 使用实体来接收JSON
创建实体对象
@Data @NoArgsConstructor @AllArgsConstructor public class User { private String id; private String username; private String password; }
使用RequestBody接收
/** * @description: 使用实体接收JSON * @author: Vinci * @date: 2023/8/24 9:01 **/ @GetMapping("/testReceiveJson") public String testReceiveJson(@RequestBody User user){ return user.toString(); }
PostMan测试结果
(2)使用 Map 集合接收JSON
/** * @description: 使用Map接收JSON * @author: Vinci * @date: 2023/8/24 9:15 **/ @GetMapping("/testMapReceiveJson") public String testMapReceiveJson(@RequestBody Map<String,Object> maps){ return maps.toString(); }
PostMan测试结果
(3) 使用 List集合接收JSON数组
/** * @description: 使用List集合接收JSON数组 * @author: Vinci * @date: 2023/8/24 9:17 **/ @GetMapping("/testListJson") public String testListJson(@RequestBody List<User> users){ return users.toString(); }
PostMan测试结果
4、@PathVariable 注解
可以使用@PathVariable注解获取url地址栏指定位置参数,url中的参数名需和controller形参一致,或是使用@PathVariable注解的value属性进行映射,在写@XXXMapping注解中的url时参数名需要使用 { } 括起来
/** * @description: 使用@PathVariable注解获取地址栏指定位置参数 * @author: Vinci * @date: 2023/8/24 9:32 **/ @GetMapping("/testGetAddressBarParameters/{id}") public String addressBarParameters(@PathVariable int id){ return String.valueOf(id); }
PostMan测试结果
到此这篇关于SpringMVC中Controller层获取前端请求参数的几种方式的文章就介绍到这了,更多相关SpringMVC Controller层获取前端请求参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring中@ExceptionHandler注解的工作原理详解
这篇文章主要介绍了Spring中@ExceptionHandler注解的工作原理详解,Spring Web注解@ExceptionHandler可以用来指定处理某类异常的控制器方法,从而在这些异常发生时,会有相应的控制器方法来处理此类异常,需要的朋友可以参考下2024-01-01java中form以post、get方式提交数据中文乱码问题总结
这篇文章主要介绍了java中form以post、get方式提交数据中文乱码问题总结,需要的朋友可以参考下2014-10-10
最新评论