我有一个带有请求参数的端点:http://localhost/test?parameter=123
当某人用字符串而不是整数调用此端点时,他会得到一个BAD_REQUEST响应,因为该字符串无法转换。
是否可以忽略请求参数上的转换异常并将其保留为空?`
目前我的代码如下:
@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) Integer parameter) {...}
答案 0 :(得分:2)
您应该将参数作为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
}