前后端传参

1、路径传参

前端传一个参数:123

前后端传参_第1张图片

后端接收一个参数:123

    // /{}是必须写的,id是自定义的
    // @PathVariable 这个注解也是必须写的,否则接不到参数
    @GetMapping("/{id}")
	//使用什么类型去接收id的值,要看你后端需要什么类型
    public void t1(@PathVariable String id) {
        log.info(id);
    }

前端传多个参数:123&456

前后端传参_第2张图片

后端接收多个参数:123&456

和接收一个参数一样,只是有几个参数@PathVariable注解就要写几个

    // /{}是必须写的,id是自定义的
    // @PathVariable 这个注解也是必须写的,否则接不到参数
    @GetMapping("/{id}/{num}")
	//使用什么类型去接收id的值,要看你后端需要什么类型
    public void t1(@PathVariable String id,@PathVariable String num) {
        log.info(id + num);
    }

2、普通传参

前端传参

前后端传参_第3张图片

后端接收

    //首先要明确一点,前端访问的后端路径中 ?问号后边的都是参数
    //@RequestParam 这个注解可以加,也可以不加
    //当需要这个注解底层的一些功能时,需要加,否则,可以不加,不会出错
    //value 这个可以改变前端传递参数的名字,"id" 他和前端的参数名一样即可,String id 这个id可以随便改名
    //如果不加@RequestParam 前端传参时,name可以不传,不会报错
    //但是加上@RequestParam 前端就必须传name的值,否则就i会出错
    //required = false 加上他,就表示前端传参时,name可以不传,不会报错
    @GetMapping("/testParam")
    public void t2(@RequestParam(value = "id") String id,@RequestParam(required = false) String name) {
        log.info(id + name);
    }

 3、post传参

第一种情况:前端用application/json,也就是json格式传参

前后端传参_第4张图片

 后端接收

    //如果前端是以json格式传递参数
    //那么在接收请求的时候,需要加上@RequestBody注解,值才能成功传递到后端
    //如果不加就是null对象,因为item也会被初始化
    //item是一个封装的实体类,建议在接收post请求时根据前端传递的json内容封装成实体类接收
    @PostMapping("/testParam")
    public void t3(@RequestBody Item item) {
        log.info(item.getId()+item.getName());
    }

第二种情况:前端使用form-data格式,也就是表单格式传参

前后端传参_第5张图片

 后端接收

    //如果前端使用form-data的格式传参,不可以写@RequestBody注解,否则会报错
    //item是一个封装的实体类,建议在接收post请求时根据前端传递的json内容封装成实体类接收
    @PostMapping("/testParam")
    public void t4(Item item) {
        log.info(item.getId()+item.getName());
    }

4、集合&数组

前端传递的参数

前后端传参_第6张图片

 后端可以有三种接收方式

第一种:使用list集合接收

    //接收前端以逗号分隔的多个参数,使用集合必须加上@RequestParam
    @PostMapping("/testParam")
    public void t5(@RequestParam List ids) {
        log.info("ids",ids);
    }

第二种:使用数组接收

    //使用数组,加不加@RequestParam注解,都可以
    @PostMapping("/testParam")
    public void t6(Integer[] ids) {
        log.info("ids",ids);
    }

第三种:使用可变参数接收

    //使用可变参数,接收到的也是数组类型,也可以不加@RequestParam注解
    @PostMapping("/testParam")
    public void t6(Integer ...ids) {
        log.info("ids",ids);
    }

你可能感兴趣的:(Java,java,spring,开发语言)