转换@RequestParam值时忽略异常



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

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

目前我的代码如下所示:

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

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

通过说它应该在你的方法签名中Integer,你要求它确实是一个整数。如果不是,确实是BAD_REQUEST.如果需要其他自定义方案,则应自己实现。

@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
}

相关内容

  • 没有找到相关文章

最新更新