CustomErrorController.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.fdkankan.common.controller;
  2. import com.fdkankan.common.response.ResultData;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import org.springframework.boot.web.servlet.error.ErrorController;
  6. import org.springframework.http.HttpStatus;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.ResponseBody;
  10. /**
  11. * <p>
  12. * 404 500 401等错误返回转发接口,统一返回格式
  13. * </p>
  14. *
  15. * @author dengsixing
  16. * @since 2022/3/9
  17. **/
  18. @Controller
  19. public class CustomErrorController implements ErrorController {
  20. @RequestMapping("/error")
  21. @ResponseBody
  22. public ResultData handleError(HttpServletRequest request, HttpServletResponse response){
  23. //获取statusCode:401,404,500
  24. Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
  25. String message = "";
  26. HttpStatus httpStatus = HttpStatus.valueOf(statusCode);
  27. switch (httpStatus){
  28. case INTERNAL_SERVER_ERROR :
  29. message = "内部服务器异常!";
  30. break;
  31. case NOT_FOUND:
  32. message = "接口不存在!";
  33. break;
  34. case FORBIDDEN:
  35. message = "禁止访问!";
  36. break;
  37. }
  38. return ResultData.error(statusCode, message);
  39. }
  40. @Override
  41. public String getErrorPath() {
  42. return "/error";
  43. }
  44. }