避免POST请求导致Spring MVC中出现“400 - Bad Request”状态代码

时间:2013-07-25 11:58:37

标签: spring java-ee spring-mvc

我有一个使用注释配置的Spring MVC应用程序。我的测试控制器看起来像这样:

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

当用户将数据发布到此控制器并且未输入有效的长号码(“someNumber”)时,Spring MVC将响应400 - 错误请求HTTP状态代码。我的应用程序没有机会对该错误作出反应。

这个问题通常是如何处理的?

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

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

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

或者,如果没有默认值,只需使用@ diafour的答案,您将得到null值。