2

我有一个使用注释配置的 Spring MVC 应用程序。我的测试控制器如下所示:

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam("name") Long someNumber) {
    ...
    return "redirect:/showAll/";
}

当用户向该控制器发布数据并且没有输入有效的长数字(“someNumber”)时,Spring MVC 会以 400 - Bad Request HTTP 状态代码进行响应。我的应用程序没有机会对该错误做出反应。

这个问题一般是怎么处理的?

4

2 回答 2

3

我认为处理此问题的最佳方法是将“必需”参数添加到 RequestParam 注释中。

@RequestParam(value="name", required=false)

http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

于 2013-07-25T12:09:18.880 回答
0

一种解决方案是为您的参数声明一个默认值,然后在应用程序代码中检查它:

@RequestParam(value="name", defaultValue="-1")

或者,如果默认值没有意义,只需使用@diafour 的答案,您就会得到一个null值。

于 2013-07-25T12:09:34.400 回答