知者何南 发表于 2024-5-14 10:13:23

springboot如何优雅的获取前端参数

写在前面

对于初学者来说,困难的不是理论知识,而是如何在程序中详细实现。
现在的项目基本上都是前后端分离的项目,如何打通前后端,吸收前端传过来的参数呢?
废话不多说,这篇文章就来说一说吸收前端参数的详细操作
一、获取路径中的值

1.1 核心代码

@GetMapping("/getArticle/{id}")
public Article getArticle(@PathVariable("id") Long id){
    System.out.println("获取到路径中的值为:"+id);
    return parmsService.findArticleById(id);
}1.2 测试结果

在访问“http://localhost:8080/article/1” 时,程序会自动将URL中的模板变量{id} 绑定到通过@PathVariable注解的同名参数上,以是程序中可以获取到id=1
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203365-660972612.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203307-728243735.png
二、获取路径中的参数

2.1 核心代码

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

这里的参数和上面的不一样,这里的参数是通过“=”隔开的,多个参数使用&分割。 比方测试例子中的“http://localhost:8080/?name=小凡&sex=男&age=18”
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203503-1462764522.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203164-1928291005.png
三、通过Bean吸收对象参数

3.1 核心代码

//①User
@Data
public class User {
    privateInteger id;
    privateString name;
    private String sex;
    privateInteger age;
}


//接收参数方法
@PostMapping("/addnewUser/")
public String addUser(User user){
    System.out.println(user);
    return"添加用户成功";
}3.2 测试结果

这里直接将前端传过来的参数映射到User 对象上
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203343-241906649.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203318-822153925.png
四、HttpServletRequest吸收参数

4.1 核心代码

@PostMapping("/addBook/")
public String addBook(HttpServletRequest request){
    String bookName = request.getParameter("bookName");
    String author = request.getParameter("author");
    System.out.println("获取到参数中的值为:"+bookName+","+author);
    return "添加书籍成功";
}4.2 测试结果

https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203283-928940444.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203240-1468259978.png
五、用@RequestParam吸收参数

5.1 核心代码

@GetMapping("/getParams")
public String getParms(@RequestParam("param1") Stringparam1,@RequestParam("param2") String param2){
    System.out.println("获取到参数中的值为:"+param1+","+param2);
    return "Param1: " + param1 + ", parm2: " + param2;
}5.2 测试结果

https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203409-213648957.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203469-2037576508.png
六、 用@RequestBody 吸收json数据

6.1 核心代码

//① 定义User实体对象
@Data
public class User {
    privateInteger id;
    privateString name;
    private String sex;
    privateInteger age;
}
//② 接收参数
@PostMapping("/addUsers")
public List<User> addUsers(@RequestBody List<User> users){
    System.out.println(""+users);
    return users;
}6.2 测试结果

https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203468-1924299445.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203306-753531128.png
七、吸收文件 MultipartFile

7.1 核心代码

@PostMapping("/singleFileUpload")
public String singleFileUpload(@RequestParam("file") MultipartFile file){
    //文件存储路径
    final String BASE_PATH = "E:\\xiezhrspace\\parm-demo\\";
    if(file.isEmpty()){
      return "文件为空";
    }
    //获取文件名
    String fileName = file.getOriginalFilename();

    try {
      //新建一个文件路径
      File dest = new File(BASE_PATH + fileName);
      //判断路径是否存在,如果不存在就创建一个
      if(!dest.getParentFile().exists()){
            dest.getParentFile().mkdirs();
      }
      //将上传文件保存到一个目标文件当中
      file.transferTo(dest);

    } catch (IOException e) {
      e.printStackTrace();
    }
    return "上传成功";
}7.2 测试结果

https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203487-338269676.png
https://img2024.cnblogs.com/blog/2381533/202403/2381533-20240317094203165-853408043.png
以上就是本期全部内容,盼望对您有所帮助,我们下期再见(●'◡'●)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: springboot如何优雅的获取前端参数