我有一个接受请求参数的端点: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
}