Java SpringBoot学习记录(4)

2.3 SpringBoot Web请求响应 数组集合参数:

学习视频链接:Day05-04. 请求响应-请求-数组集合参数_哔哩哔哩_bilibili

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

传递参数的url举例: http://localhost:8080/arrayParam?hobby=sing&hobby=football

集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系

传递参数的url举例: http://localhost:8080/listParam?hobby=sing&hobby=football

2.4 SpringBoot Web请求响应 日期参数和json参数:

学习视频链接:Day05-05. 请求响应-请求-日期参数&json参数_哔哩哔哩_bilibili

日期参数:使用@DateTimeFormat注解完成日期参数格式转换

传递参数的url举例: http://localhost:8080/dateParam?2026-04-15 13:00:00

JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识

测试传递对象设置如下:

由于json格式比较复杂,我们通常选择Post方式而非像前面选择Get方式并且修改url来进行传参。

2.5 SpringBoot Web请求响应 路径参数:

学习视频链接:Day05-06. 请求响应-请求-路径参数_哔哩哔哩_bilibili

路径参数:通过请求URL直接传递参数,使用...来标识该路径参数,需要使用@PathVariable获取路径参数

传递参数的url举例: http://localhost:8080/path/1(当id=1时)

传递多个路径参数的举例:

传递参数的url举例: http://localhost:8080/path/1/Tom(当id=1,name=Tom时)

2.6 SpringBoot Web请求响应 @ResponseBody和统一响应结果:

学习视频链接:Day05-07. 请求响应-响应-@ResponseBody&统一响应结果_哔哩哔哩_bilibili

@ResponseBody

1.返回值是字符串:

java 复制代码
@RequestMapping("/hello")
    public String hello() {
        System.out.println("hello world");
        return "Hello World";
    }

结果:

2.返回值是对象:

java 复制代码
@RequestMapping("/getAddr")
    public Address getAddr() {
        Address address = new Address();
        address.setProvince("zhejiang");
        address.setCity("hangzhou");
        System.out.println(address);
        return address;
    }

结果:

3.返回值是集合:

java 复制代码
@RequestMapping("/listAddr")
    public List<Address> listAddr() {
        List<Address> list = new ArrayList<>();

        Address address1 = new Address();
        address1.setProvince("zhejiang");
        address1.setCity("hangzhou");

        Address address2 = new Address();
        address2.setProvince("jiangsu");
        address2.setCity("nanjing");

        System.out.println(address1);
        System.out.println(address2);

        list.add(address1);
        list.add(address2);
        return list;
    }

结果:

统一响应结果:

通过右图的result实体对象接收响应,让项目管理维护更加便利,

result.java完整内容如下:

java 复制代码
package com.example.springboot_web.pojo;

public class Result {
    private int code;
    private String msg;
    private Object data;
    public Result() {
    }
    public Result(int code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
    public int getCode() {return code;}
    public void setCode(int code) {
        this.code = code;
    }
    public String getMsg() {return msg;}
    public void setMsg(String msg) {
        this.msg = msg;
    }
    public Object getData() {
        return data;
    }
    public void setData(Object data) {this.data = data;
    }

    public static Result success(Object data) {
        return new Result(1, "success", data);
    }
    public static Result success() {
        return new Result(1, "success",null);
    }
    public static Result error(String msg) {
        return new Result(0, msg,null);
    }

    @Override
    public String toString() {
        return "Result{" +
                "data=" + data +
                ", msg='" + msg + '\'' +
                ", code=" + code +
                '}';
    }
}

统一响应结果举例(controller代码和结果截图):

java 复制代码
 @RequestMapping("/hello")
    public Result hello() {
        System.out.println("hello world");
        return Result.success("hello world!");
    }
相关推荐
憧憬成为java架构高手的小白14 小时前
苍穹外卖--day09
java·spring boot·百度
学代码的真由酱14 小时前
Java多用户一对一网页聊天室-测试报告
java·开发语言·功能测试·测试
人道领域14 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
Jasonakeke15 小时前
SpringBoot自动配置原理揭秘
java·spring boot·后端
xiaoshuaishuai815 小时前
C# AvaloniaUI动态显示图片
开发语言·c#
元气少女小圆丶15 小时前
SenseGlove Nova 2+Unity开发笔记1
笔记·学习·unity
日光明媚15 小时前
一步生成视频!One-Forcing:DMD + 零成本 GAN,训练 200 步超越多步 SOTA
android·开发语言·kotlin
2301_8035389515 小时前
Java读取Word图片的两种实用方法
java·开发语言·word
nashane16 小时前
HarmonyOS 6学习:应用退出动画优化实战——从“闪退“到优雅退出的完美蜕变
学习·华为·harmonyos
C+-C资深大佬16 小时前
SSM 框架(Spring + SpringMVC + MyBatis)
java·spring·mybatis