java拦截器内的spring重定向
我想创建用于错误代码处理的拦截器,它将重定向到SpringMVC应用程序中正确的错误页面。问题是错误代码来自服务,而服务是在请求处理程序内部处理的,所以我可能需要拦截服务而不是请求处理程序。 例如:
@RequestMapping(value = "/products", method = RequestMethod.GET)
public ModelAndView handleProducts(ModelAndView mav) {
//do something
...
//load products
ResponseMo response = productsService.getProducts();
//process the response
mav.addObject("products", response.getData());
...
/do something else
return mav;
}
我需要的是捕获getProducts()的响应,如果有错误响应,我需要重定向。。。在这个项目中,有很多这样的处理程序和服务调用,所以我需要在一个地方解决它。ProductsService是项目的一部分,与ear相同。 我在考虑拦截器、过滤器、方面。。。我可以拦截getProducts()调用,但我不能在拦截器内重定向,或者可以吗?或者我应该使用一些不同的方法
# 1 楼答案
见https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc
创建适合您的业务案例的自定义异常,然后在控制器中处理异常。希望能有帮助