3

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

这样做的一个简单案例是将所有@RequestParams 更改为字符串,并在处理程序内进行转换,如果有任何错误,则以反馈进行响应。(错误可能从类型不匹配到无效参数变化,即年龄的负数)。

有没有更好的办法?

4

1 回答 1

3

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

如果您想向用户提供反馈,最好使用带有@ModelAttribute和的传统表单处理方法BindingResult。这样,您可以执行任意验证,还可以为类型不匹配错误提供有意义的错误消息

于 2012-12-07T10:46:46.273 回答