欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot 前后端数据交互

程序员文章站 2022-03-16 08:55:01
...

本系列主要讲解前后端数据的传输(HTML + SpringBoot)

  1. form 提交
  2. Ajax 异步传输
  3. websocket 提交

本文主要讲解 from 的传递

接收GET 或 POST数据

1. 直接接收(不推荐)

GET请求的数据会存在url中,比如 http://localhost:8080/get?x1=9&x2=10
我们的任务就是从后台接受到x1x2的值。
设立\get映射,将相应的方法参数设置为与url相同的名字,即可直接接收到来自前端的数据

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(int x1, int x2){
    System.out.printf("x1= %d, x2= %d\n", x1,x2);
    return "Sucess";
}

启动后,访问http://localhost:8080/get?x1=9&x2=10,可以看到输出
SpringBoot 前后端数据交互

2. 参数接收

利用@RequestParam()将参数名与接收参数名形成映射

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(@RequestParam("x1") int para1, @RequestParam("x2") int para2){
    System.out.printf("x1= %d, x2= %d\n", para1, para2);
    return "Sucess";
}

启动后,访问http://localhost:8080/get?x1=9&x2=10,会得到同样的效果

对于数组的传递

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String getData(@RequestParam("x1") int[] para1, @RequestParam("x2") int[] para2){
    System.out.printf("x1= ");
    for(int ele: para1){
        System.out.printf("%d ",ele);
    }
    System.out.printf("\n");

    System.out.printf("x2= ");
    for(int ele: para2){
        System.out.printf("%d ",ele);
    }
    System.out.printf("\n");
    return "Sucess";
}

访问 :http://localhost:8080/get?x1=9,8,7,6&x2=10,11,12
SpringBoot 前后端数据交互

3. HttpServletRequest 获取

@RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
public String login(HttpServletRequest request, HttpSession session) {
    String x1 = request.getParameter("x1");
    String x2 = request.getParameter("x2");
    System.out.printf("x1=%s \n", x1);
    System.out.printf("x1=%s \n", x2);
    return "Sucess";
}

SpringBoot 前后端数据交互

传递Json数据,可以通过Ajax传给后台

参考本系列的Ajax传输