1
这应该是解决方案的一个常见问题,但我没有设法在任何地方找到它。Spring MVC ExceptionHandler和控制器上下文
我正在使用@ControllerAdvice定义一个全局异常处理程序,我定义了一个新的ModelAndView并重定向到了我的错误页面。非常好,除了现在我们想添加一个链接回到原来的页面,这当然可以根据错误发生的位置而变化。
我想要做的是存储某种关于生成错误的控制器的上下文信息,例如,如果它是MyController,那么我可以通过MyController.EXCEPTION_REDIRECT_URL访问一个值并生成相应的链接。
我发现在异常处理程序中缺少上下文信息而非限制。
谢谢,我知道我可以做到这一点,但这将需要我赶上原来的异常,并包装/抛出我不想做的自定义异常,因为它不仅增加了更多的代码和混乱的代码库我希望异常处理对于AOP的概念是透明的。我只是想避免在所有控制器的每个请求处理程序中放入try catch,我觉得有点失败的目的。 – funnyman7878
@ funnyman7878我一直觉得,抛出域特定的例外更好......我2美分。你可以注入诸如请求上下文之类的东西,尽管老实说我不记得该怎么做。你也可以创建一些请求作用域的对象,并将其放入其中。 – xenoterracide
请注意,抛出的异常可能会阻止输入参数验证,并且即使在进入代码之前也会触发。 –