Spring Boot @GetMapping地址请求page参数为空导致404错误的解决方案

在使用Spring Boot的@GetMapping注解处理分页请求时,如果地址中的page参数传递为空值,可能会遇到404错误。本文将解释这个问题的原因,并提供解决方案和代码示例。

问题原因:

当使用@PathVariable注解获取路径参数时,Spring框架会尝试将请求路径中的值与方法参数进行匹配。如果page参数为空,框架无法找到对应的值,就会导致404错误。

解决方案:

为了解决这个问题,我们需要在代码中处理page参数为空的情况,并设置一个默认值。

代码示例:

@GetMapping('/queryAllAttendance/{page}/{pageSize}')
public ResponseEntity<Object> queryAllAttendance(@PathVariable('page') Integer page,
                                                @PathVariable('pageSize') Integer pageSize) {
    // 判断page参数是否为空,如果为空则设置默认值为1
    if (page == null) {
        page = 1;
    }

    // 根据page参数进行相应的业务逻辑处理,例如查询指定页码的考勤信息
    List<Attendance> attendanceList = attendanceService.queryAttendanceByPage(page, pageSize);

    // 如果查询到数据,则返回成功响应
    if (!attendanceList.isEmpty()) {
        return ResponseEntity.ok(attendanceList);
    }

    // 如果没有查询到数据,则返回404错误响应
    return ResponseEntity.status(HttpStatus.NOT_FOUND).body('No attendance data found.');
}

代码解释:

  1. 使用@PathVariable('page')注解获取路径参数page的值,并将其赋值给Integer类型的变量page
  2. 使用if (page == null)语句判断page参数是否为空。
  3. 如果page为空,则将其设置为默认值1
  4. 根据page参数的值进行相应的业务逻辑处理,例如查询指定页码的考勤信息。
  5. 根据查询结果返回相应的响应。

总结:

通过在代码中处理page参数为空的情况,并设置默认值,可以避免在请求中传递空值时出现404错误。这种方法可以提高代码的健壮性和容错性,使其更加稳定可靠。

Spring Boot @GetMapping地址请求page参数为空导致404错误的解决方案

原文地址: https://www.cveoy.top/t/topic/bYq3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录