经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring » 查看文章
springboot如何优雅的获取前端参数
来源:cnblogs  作者:xiezhr  时间:2024/3/18 15:05:21  对本文有异议

写在前面

对于初学者来说,困难的不是理论知识,而是如何在程序中具体实现。

现在的项目基本上都是前后端分离的项目,如何打通前后端,接收前端传过来的参数呢?

废话不多说,这篇文章就来说一说接收前端参数的具体操作

一、获取路径中的值

1.1 核心代码

  1. @GetMapping("/getArticle/{id}")
  2. public Article getArticle(@PathVariable("id") Long id){
  3. System.out.println("获取到路径中的值为:"+id);
  4. return parmsService.findArticleById(id);
  5. }

1.2 测试结果

在访问“http://localhost:8080/article/1” 时,程序会自动将URL中的模板变量{id} 绑定到通过@PathVariable注解的同名参数上,所以程序中可以获取到id=1

获取路径中的值

打印结果

二、获取路径中的参数

2.1 核心代码

  1. @RequestMapping(value = "/addUser/",method = RequestMethod.POST)
  2. public String addUser(String name,String sex,int age){
  3. System.out.println("获取到参数中的值为:"+name+","+sex+","+age);
  4. return "添加文章成功";
  5. }

2.2 测试结果

这里的参数和上面的不一样,这里的参数是通过“=”隔开的,多个参数使用&分割。 例如测试例子中的“http://localhost:8080/?name=小凡&sex=男&age=18”

postman测试结果

idea打印值

三、通过Bean接收对象参数

3.1 核心代码

  1. //①User
  2. @Data
  3. public class User {
  4. private Integer id;
  5. private String name;
  6. private String sex;
  7. private Integer age;
  8. }
  9. //接收参数方法
  10. @PostMapping("/addnewUser/")
  11. public String addUser(User user){
  12. System.out.println(user);
  13. return "添加用户成功";
  14. }

3.2 测试结果

这里直接将前端传过来的参数映射到User 对象上

postman测试结果

idea打印结果

四、HttpServletRequest接收参数

4.1 核心代码

  1. @PostMapping("/addBook/")
  2. public String addBook(HttpServletRequest request){
  3. String bookName = request.getParameter("bookName");
  4. String author = request.getParameter("author");
  5. System.out.println("获取到参数中的值为:"+bookName+","+author);
  6. return "添加书籍成功";
  7. }

4.2 测试结果

postman测试结果

idea测试结果

五、用@RequestParam接收参数

5.1 核心代码

  1. @GetMapping("/getParams")
  2. public String getParms(@RequestParam("param1") String param1,@RequestParam("param2") String param2){
  3. System.out.println("获取到参数中的值为:"+param1+","+param2);
  4. return "Param1: " + param1 + ", parm2: " + param2;
  5. }

5.2 测试结果

postman测试结果

idea测试结果

六、 用@RequestBody 接收json数据

6.1 核心代码

  1. //① 定义User实体对象
  2. @Data
  3. public class User {
  4. private Integer id;
  5. private String name;
  6. private String sex;
  7. private Integer age;
  8. }
  9. //② 接收参数
  10. @PostMapping("/addUsers")
  11. public List<User> addUsers(@RequestBody List<User> users){
  12. System.out.println(""+users);
  13. return users;
  14. }

6.2 测试结果

postman测试结果

idea打印结果

七、接收文件 MultipartFile

7.1 核心代码

  1. @PostMapping("/singleFileUpload")
  2. public String singleFileUpload(@RequestParam("file") MultipartFile file){
  3. //文件存储路径
  4. final String BASE_PATH = "E:\\xiezhrspace\\parm-demo\\";
  5. if(file.isEmpty()){
  6. return "文件为空";
  7. }
  8. //获取文件名
  9. String fileName = file.getOriginalFilename();
  10. try {
  11. //新建一个文件路径
  12. File dest = new File(BASE_PATH + fileName);
  13. //判断路径是否存在,如果不存在就创建一个
  14. if(!dest.getParentFile().exists()){
  15. dest.getParentFile().mkdirs();
  16. }
  17. //将上传文件保存到一个目标文件当中
  18. file.transferTo(dest);
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. return "上传成功";
  23. }

7.2 测试结果

postman测试结果

文件上传成功

以上就是本期全部内容,希望对您有所帮助,我们下期再见(●'?'●)

原文链接:https://www.cnblogs.com/xiezhr/p/18078121

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号