我有这个控制器方法的 Spring MVC 应用程序。
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
...
return "redirect:/showAll/";
}
在我的 JSP 中,我有一个标准的 HTML 表单,它将一个名为“number”的值发布到上面的控制器方法中。但是,如果我省略了值(不要在文本字段中输入任何内容)并将数据 POST 到控制器,在调用控制器方法之前,我的浏览器会显示
HTTP Status 400 - Required Long parameter 'number' is not present
尽管控制器方法注释清楚地定义了不需要的“数字”参数。
有人对可能发生的事情有一点了解吗?
谢谢你。
PS:正在抛出的异常如下:
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present
编辑:这是一个 Spring 3.2.3.RELEASE 错误(见这里)。使用 3.1.4.RELEASE 版本,我不再有这个问题了。