Spring MVC 能否在所有控制器的响应中捕获异常并 return BindingResult?
Can Spring MVC catch an exception and return a BindingResult in the response for all controllers?
我正在尝试在我的应用程序的服务层上利用现有的验证框架,该框架会在验证失败时抛出 ValidationException。此异常对象包含多个错误,我想利用 Spring MVC 中的异常处理程序将这些错误和 return 验证消息提取到视图 (thymeleaf)。
所以我有两个关于如何做到这一点的问题:
1) 我可以从自定义错误对象列表中手动创建 BindingResult 对象以传递给视图层吗?
2) 我可以从基本控制器中的处理程序捕获 ValidationException(可以从多个方法中抛出)并让它拦截响应和 return 带有验证消息的视图吗?或者我是否必须 try/catch 在每个控制器方法中可能抛出此异常并在那里提取绑定结果?
显然,如果所有这些都发生在一个地方会更好——如果一个处理程序可以捕获 ValidationException 并将错误消息注入视图。但是该方法可以访问 returned 模型和视图吗?对此架构的任何建议都会非常有帮助。
你检查过google了吗?我的第一击是
https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
这将允许您 return 使用适当的模型查看所需的异常。
还要查看异常处理程序的 spring 文档?
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerExceptionResolver.html
那么问题就变成了如何检索绑定结果。如果我为它 google ,它看起来可以作为请求属性使用:
Spring 3 web request interceptor - how do I get BindingResult?
我正在尝试在我的应用程序的服务层上利用现有的验证框架,该框架会在验证失败时抛出 ValidationException。此异常对象包含多个错误,我想利用 Spring MVC 中的异常处理程序将这些错误和 return 验证消息提取到视图 (thymeleaf)。
所以我有两个关于如何做到这一点的问题:
1) 我可以从自定义错误对象列表中手动创建 BindingResult 对象以传递给视图层吗?
2) 我可以从基本控制器中的处理程序捕获 ValidationException(可以从多个方法中抛出)并让它拦截响应和 return 带有验证消息的视图吗?或者我是否必须 try/catch 在每个控制器方法中可能抛出此异常并在那里提取绑定结果?
显然,如果所有这些都发生在一个地方会更好——如果一个处理程序可以捕获 ValidationException 并将错误消息注入视图。但是该方法可以访问 returned 模型和视图吗?对此架构的任何建议都会非常有帮助。
你检查过google了吗?我的第一击是
https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
这将允许您 return 使用适当的模型查看所需的异常。
还要查看异常处理程序的 spring 文档? http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerExceptionResolver.html
那么问题就变成了如何检索绑定结果。如果我为它 google ,它看起来可以作为请求属性使用: Spring 3 web request interceptor - how do I get BindingResult?