Spring:在@RequestParam中类型不匹配时处理错误

时间:2012-12-07 10:22:54

标签: spring spring-mvc error-handling

我有一个请求hanlder(@Controller类中的方法),在提交表单时调用了一些@RequestParam args。我有各种类型的args,如字符串,整数,枚举和对象...... 当提交表单时,如果spring无法将param绑定到arg,则返回一个响应 错误400或500(我还没有理解哪些情况对应于每个错误)。 我更愿意通过向用户发送反馈来处理这种不匹配,突出显示表单中的哪个字段是坏的以及为什么......

这样做的一个简单例子是将所有@RequestParams更改为字符串,并在处理程序内执行转换,并在出现任何错误时回复反馈。 (错误可能因类型不匹配到无效参数而异,即年龄为负数。)

还有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

@RequestParam最适合您的应用程序生成参数而不是用户输入参数的情况。

如果您想向用户提供反馈,最好使用@ModelAttributeBindingResult的传统表单处理方法。这样您就可以执行任意验证,还可以provide meaningful error messages for type mismatch errors