我正在尝试利用应用程序服务层上的现有验证框架,该框架在验证失败时会抛出 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/