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

打印 上一主题 下一主题

主题 925|帖子 925|积分 2775

写在前面

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

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”


三、通过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 对象上


四、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 测试结果



五、用@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 测试结果



六、 用@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 测试结果



七、接收文件 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 测试结果



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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

自由的羽毛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表