我有一个请求hanlder(@Controller类中的方法),在提交表单时调用了一些@RequestParam args。我有各种类型的args,如字符串,整数,枚举和对象...... 当提交表单时,如果spring无法将param绑定到arg,则返回一个响应 错误400或500(我还没有理解哪些情况对应于每个错误)。 我更愿意通过向用户发送反馈来处理这种不匹配,突出显示表单中的哪个字段是坏的以及为什么......
这样做的一个简单例子是将所有@RequestParams更改为字符串,并在处理程序内执行转换,并在出现任何错误时回复反馈。 (错误可能因类型不匹配到无效参数而异,即年龄为负数。)
还有更好的方法吗?
答案 0 :(得分:3)
@RequestParam
最适合您的应用程序生成参数而不是用户输入参数的情况。
如果您想向用户提供反馈,最好使用@ModelAttribute
和BindingResult
的传统表单处理方法。这样您就可以执行任意验证,还可以provide meaningful error messages for type mismatch errors。