是否可以让空的请求参数值使用默认值?
2022-08-31 07:42:08
如果我有一个类似于以下内容的请求映射:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
然后调用此请求:
http://example.com/test?i=
我收到错误消息
无法将类型“java.lang.String”的值转换为类型“int”;嵌套异常是 java.lang.NumberFormatException: 对于输入字符串:“”'
我可以通过阻止javascript客户端发送空参数来解决这个问题,或者接受字符串值并且仅在未发现它们为空时才解析。
更新:更高版本的spring现在实现了最初所需的行为。
我刚刚在春季4.3.5中对此进行了测试,发现该行为现在实际上会将空值转换为默认值,而不会提高a,因此;我的原始映射现在工作正常。NumberFormatException
我不确定这种行为改变是哪个版本的春天。