【问题标题】:Spring MVC 3 is there a common place to handle exception and display error message in the same view instead of error pageSpring MVC 3 有一个共同的地方来处理异常并在同一视图中显示错误消息而不是错误页面
【发布时间】:2014-03-14 12:40:53
【问题描述】:

我正在使用 Spring MVC 3.2.4。我有一个从业务层抛出的业务异常,并且希望在同一视图中显示一条错误消息,而不是在它被捕获后转发到错误页面。我知道我可以将 try-catch 放在每个处理程序方法中,然后返回到相同的视图。但我真的想要一个在 Spring MVC 中实现这一点的通用地方。我尝试了@ExceptionHandler 和@ControllerAdvice,它似乎不起作用。 这是我想做的,

     @SomeExceptionHandlerAnnation(BusinessException.class)??
     public String handleBusinessException(Model model, 
     BusinessException ex)
     {
        //convertExceptionToMessage();
       //add message to model
       return userView;//stay in the same view
      }

问题是如何获得相同视图的模型。似乎 Spring MVC 异常处理程序不支持它。任何想法?提前致谢。

【问题讨论】:

    标签: spring-mvc view exception-handling return


    【解决方案1】:

    试试这个:

    @ControllerAdvice
    public class ExceptionController {
    
        @ExceptionHandler(Exception.class)
        @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
        public ModelAndView handleAllExceptions(Exception e) {    
          --do something here  
          return new ModelAndView();
        }
    }
    

    【讨论】:

    • 谢谢。我想要做的是保持在同一个用户视图中。创建新的 ModelAndView 时如何获取用户视图的模型,以便显示相同的视图并显示相同的数据和错误消息?
    • @ExceptionHandler 注释文档:docs.spring.io/spring/docs/3.0.x/api/org/springframework/web/… 它声明您可以将请求和/或响应对象作为参数发送。您应该能够从发出请求的页面获取并返回到该页面。试一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2023-04-09
    • 2012-04-28
    相关资源
    最近更新 更多