在java拦截器内重定向

时间:2015-06-07 20:13:45

标签: java spring spring-mvc servlets interceptor

我想为错误代码处理创建拦截器,它将重定向到Spring MVC应用程序中的正确错误页面。问题是错误代码来自服务,它在请求处理程序中处理,所以我可能需要拦截服务而不是请求处理程序。 例如:

@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是项目的一部分,同样的耳朵。 我正在考虑拦截器,过滤器,方面......我可以拦截getProducts()调用,但我不能在拦截器内重定向,或者我可以吗?或者我应该使用一些不同的方法?

1 个答案:

答案 0 :(得分:1)

请参阅https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

创建适合您业务案例的自定义异常,然后处理控制器中的异常。希望它有所帮助。