Spring 转换@RequestParam值时忽略异常

Spring 转换@RequestParam值时忽略异常,spring,spring-mvc,Spring,Spring Mvc,我有一个接受请求参数的端点:http://localhost/test?parameter=123 当有人用字符串而不是整数调用此端点时,他会得到错误的请求响应,因为该字符串无法转换 是否可以忽略请求参数上的转换异常并将其保留为空` 当前我的代码如下所示: @RequestMapping(value = "/test") public void doSomething(@RequestParam(required = false) Integer parameter) {...} 您应该将参数

我有一个接受请求参数的端点:
http://localhost/test?parameter=123
当有人用字符串而不是整数调用此端点时,他会得到错误的请求响应,因为该字符串无法转换

是否可以忽略请求参数上的转换异常并将其保留为空`

当前我的代码如下所示:

@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) Integer parameter) {...}

您应该将参数作为字符串并自行转换

@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) String parameter) {

    Integer parameterValue = null;

    if (parameter != null) {
        try {
           parameterValue = Integer.valueOf(parameter);
        } catch (NumberFormatException ex) {
           // No-op as already null
        }
    }

    // At this point the parameterValue is either null if not specified or specified as non-int, or has the integer value in it
}
通过在方法签名中说它应该是
整数
,您要求它确实是整数。如果不是,它确实是
错误的请求
。如果您想要其他自定义场景,您应该自己实现它

@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) String parameter) {

    Integer parameterValue = null;

    if (parameter != null) {
        try {
           parameterValue = Integer.valueOf(parameter);
        } catch (NumberFormatException ex) {
           // No-op as already null
        }
    }

    // At this point the parameterValue is either null if not specified or specified as non-int, or has the integer value in it
}

为什么不将参数简单地作为字符串,并在方法代码中进行转换呢?