Spring MVC 可以捕获异常并在所有控制器的响应中返回 BindingResult 吗?

ant*_*lma 2 java spring spring-mvc spring-validator

我正在尝试利用应用程序服务层上的现有验证框架,该框架在验证失败时会引发 ValidationException。这个异常对象包含多个错误,我想利用 Spring MVC 中的异常处理程序来提取这些错误并将验证消息返回到视图(thymeleaf)。

所以我有两个关于如何做到这一点的问题:

1) 我可以从自定义错误对象列表中手动创建 BindingResult 对象以传递到视图层吗?

2)我可以从基本控制器中的处理程序捕获 ValidationException (可以从多个方法抛出)并让它拦截响应并返回带有验证消息的视图吗?或者我是否必须在每个可能抛出异常的控制器方法中尝试/捕获此异常并在那里提取绑定结果?

显然,如果所有这些都发生在一个地方,如果一个处理程序可以捕获 ValidationException 并将错误消息注入到视图中,那就更好了。但是该方法可以访问返回的模型和视图吗?关于此架构的任何建议都会非常有帮助。

Koo*_*laa 5

你查过谷歌吗?我的第一个点击是 https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
这将允许您使用正确的模型返回所需异常的视图。

还要查看异常处理程序的 spring 文档? http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerExceptionResolver.html

那么问题就变成了如何检索绑定结果。如果我用谷歌搜索它,它看起来可以作为请求属性使用: Spring 3 web request拦截器 - 如何获取BindingResult?