您应该将参数作为 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
}