0

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

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

目前我的代码如下所示:

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

1 回答 1

1

您应该将参数作为 String 并自行转换。

通过说它应该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
}
于 2013-10-23T10:46:27.347 回答