java - @ControllerAdvice Spring - 返回类型作为自定义对象而不是 ModelAndView

标签 java spring rest exception

我的任务是将从 Controller 中的 @RequestMapping 方法抛出的异常作为 JSON 对象暴露给 UI。在谷歌搜索时,我发现了 ControllerAdvice,我想我需要类似的东西。我在所有示例中看到的唯一问题是返回类型——它们正在返回 ModelAndView 而我需要返回一个自定义对象作为返回类型。这是我的示例代码:

Controller 类:

@RequestMapping(value="/abc", method=RequestMethod.GET)
@ResponseBody
public MyModel getResponse(@RequestParam String id, 
                            HttpServletRequest request) throws SQLException 
   {
    boolean exceptionFlag = true;  
         if (exceptionFlag){  
        throw new SQLException();  
    } 
     return myModel;
  }

异常处理类:

@ControllerAdvice
public class ExceptionHandler {
        @ExceptionHandler(SQLException.class)  
        public MyCustomException handleSQLException(SQLException exception)
        {
            MyCustomException ex = new MyCustomException();
            ex.setExceptionCode("MyCode");
            ex.setExceptionDescription(exception.getMessage());     
            return ex;
        }

它提示找不到 JSP(WARN:org.apache.jasper.servlet.JspServlet:PWC6117: File "rest\support\abc.jsp"not foundnull)

最佳答案

ExceptionHandler 能很好地捕获 SQLException 吗? 如果是这样,也许这会奏效:

@ControllerAdvice
public class ExceptionHandler {

    @ResponseBody
    @ExceptionHandler(SQLException.class)  
    public MyCustomException handleSQLException(SQLException exception) {
        MyCustomException ex = new MyCustomException();
        ex.setExceptionCode("MyCode");
        ex.setExceptionDescription(exception.getMessage());     
        return ex;
    }

}

关于java - @ControllerAdvice Spring - 返回类型作为自定义对象而不是 ModelAndView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787929/

相关文章:

java - @ManyToMany 三个表之间的关系

java - spring中如何读取文件并将其分配给ArrayList?

java - 动态远程服务位置-如何用Spring注入(inject)?

java - 使用 Java/Jersey 作为 REST 和 SOAP 工作的 Web 服务

java - Java 中的 AudioClip 进度条

java - 如何使用 Android Webview 检查链接是否离线或损坏?

c# - 如何设置 WCF Self-Hosted REST 服务?

python - 像 python Flask-RESTful 这样最好的 ruby​​ rest 框架?

java - java中如何将json文件解析为json对象

java - 简单的 for 循环在某些手机上无法正常工作。优化不好?