我想处理异常,因此URL信息会自动显示给客户端。有一个简单的方法吗?
<bean id="outboundExceptionAdapter" class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver">
<!-- what property to set here? -->
</bean>
答案 0 :(得分:4)
您有两种选择:
Spring Reference 15.9.1 HandlerExceptionResolver
Spring HandlerExceptionResolvers缓解了意想不到的痛苦 您的请求由控制器处理时发生的异常 符合要求的。 HandlerExceptionResolvers有点类似 您可以在Web应用程序中定义的异常映射 描述符web.xml。但是,它们提供了更灵活的方式 处理异常。它们提供有关哪个处理程序的信息 抛出异常时执行。此外,还是一个程序化的 处理异常的方式为您提供了更多的响应选项 在将请求转发到另一个URL之前(相同的) 结束时使用servlet特定的异常映射时。)
HandlerExceptionResolver有一种方法,包含您需要的所有内容:
HandlerExceptionResolver.resolveException(HttpServletRequest request,
HttpServletResponse response,
Object handler, Exception ex)
或者如果您需要针对不同控制器使用不同的处理程序:Spring Reference Chapter 15.9.2 @ExceptionHandler
@ExceptionHandler(IOException.class)
public String handleIOException(IOException ex, HttpServletRequest request) {
return "every thing you asked for: " + request;
}
简短的问题简答
答案 1 :(得分:1)
我正在做以下诀窍:
@ExceptionHandler(Exception.class)
public ModelAndView handleMyException(Exception exception) {
ModelAndView mv = new ModelAndView("redirect:errorMessage?error="+exception.getMessage());
return mv;
}
@RequestMapping(value="/errorMessage", method=RequestMethod.GET)
@Responsebody
public String handleMyExceptionOnRedirect(@RequestParamter("error") String error) {
return error;
}
完美无瑕。