java - Spring MVC 可以捕获异常并在所有 Controller 的响应中返回 BindingResult 吗?

标签 java spring spring-mvc spring-validator

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

所以我有两个关于如何执行此操作的问题:

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

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

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

最佳答案

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

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

接下来的问题就变成了如何检索绑定(bind)结果。如果我用谷歌搜索它,它看起来可以作为请求属性使用: Spring 3 web request interceptor - how do I get BindingResult?

关于java - Spring MVC 可以捕获异常并在所有 Controller 的响应中返回 BindingResult 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38926995/

相关文章:

java - Hadoop:在映射器的输出中使用自定义对象

java - 正则表达式 - 不应允许连续出现空格

java - 在 spring mvc Controller 访问 arraylist 元素中,其中 arraylist 的包含是类对象

java - 如何根据输入 REST 为同一请求发送两种不同类型的 JSON 响应?

java - 如何在 Android 中使用 JSON 引擎

java - 从组合框 lwuit 中删除项目?

java - Apache camel,RabbitMQ 如何发送消息/对象

java - SimpleMappingExceptionResolver 中的 Spring doResolveException 未被调用

java - 如何解决 pdf header signature not found 错误?

java spring - 具有附加值的发布请求