如何在Spring Boot中处理请求中的空值?

问题描述 投票:0回答:1

我有一个rest API,我需要将页面num作为查询参数发送。当我发送null时,它给了我一个糟糕的请求。以下是其余的API代码

@RequestMapping(value = "/sample", method = RequestMethod.GET)

@ResponseBody
public String sample(
        @RequestParam(value = "page-number", required = false, defaultValue = "1")  final Integer pageNumber,
        @RequestParam(value = "page-size", required = false, defaultValue = "50")  final Integer pageSize) {

    return "hello";
} 

我正在使用以下URL http://localhost:8000/sample?pageNumber=null访问API

我得到以下例外

"Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: \"null\"",

我该如何处理空案例?

java spring spring-boot
1个回答
1
投票

在点击任何HTTP请求时,如果您不想发送任何请求参数的任何值,请不要在URL中包含该特定参数,而不是将null值发送到该参数。

对于例如如果您不想在pageNumber请求参数中发送任何值,请不要在请求参数中包含pageNumber。所以你的请求URL将是:http://localhost:8000/sample

如果您将点击类似http://localhost:8000/sample?pageNumber=null的URL,那么它会将“null”字符串文字映射到pageNumber请求参数,并且您将获得以下异常:

“无法将'java.lang.String'类型的值转换为必需类型'java.lang.Integer';嵌套异常是java.lang.NumberFormatException:对于输入字符串:\”null \“”,

因为您期望一个Integer值应该与pageNumber请求参数映射而不是字符串文字。

© www.soinside.com 2019 - 2024. All rights reserved.