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!");
    }
相关推荐
nanxun8861 天前
记一次诡异的 Docker 容器"串包"故障排查
java
用户1563068103511 天前
Day01 | Java 基础(Java SE)
java
行者全栈架构师1 天前
Maven dependency:tree 的 8 个高级用法
java·后端
行者全栈架构师1 天前
IDEA 中 Maven 项目的 15 个红色报错快速解决方法
java·后端
令人头秃的代码0_01 天前
mac(m5)平台编译openjdk
java
唐青枫2 天前
Java JDBC 实战指南:从 Connection 到事务和连接池
java
一个做软件开发的牛马2 天前
MyBatis-Plus 从零实战:完整搭建可运行 Demo,BaseMapper 零 SQL、Wrapper 条件构造、分页插件与代码生成器详解
java·后端
用户3721574261352 天前
Java 处理 PDF 图片:提取 PDF 中的图片,并压缩 PDF 图片体积
java
用户3721574261352 天前
Java 打印 Word 文档:从基础打印到高级设置
java
用户3521802454753 天前
当 Prompt 学会"热更新":Spring Boot × Nacos3 AI 实战
java·spring boot·ai编程