如果我有类似下面的AA请求映射:是否有可能有空的RequestParam值使用defaultValue?
@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客户端解决这个如果它们没有发现为空。
UPDATE:Spring的后续版本现在实现了最初期望的行为。
我刚刚在春季4.3.5测试过,发现现在行为会将空值变成默认值而不会升高NumberFormatException
,因此;我的原始映射现在工作正常。
我不确定这个行为改变的春天是哪个版本。
当然,参数是一个Integer类型来引发异常? – laher
即时通讯不是spring专家,但是当你没有设置它时,默认值是否被使用?即如果您的请求将是http://example.com/test?当你使用http://example.com/test?i=然后我出席并设置为“”,所以默认值不使用 – user902383
谢谢amir75,意外提供'字符串'类型。 user902383,这是正确的,但对于整数值,我宁愿空/空值将使用defaultValue来代替。 –