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

时间:2018-02-27 13:06:07

标签: java spring spring-boot

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

"user_id.keyword"

我使用以下网址keyword subfield

访问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";
} 

如何处理空案例?

1 个答案:

答案 0 :(得分:1)

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

例如 如果您不想在pageNumber请求参数中发送任何值,请不要在请求参数中包含pageNumber。 因此,您的请求网址为:http://localhost:8000/sample

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

  

"无法转换类型' java.lang.String'的值要求的类型   ' java.lang.Integer中&#39 ;;嵌套异常是   java.lang.NumberFormatException:对于输入字符串:\" null \"",

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