MainsiteErrorController.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.bootdo.common.exception;
  2. import com.bootdo.common.utils.R;
  3. import org.slf4j.Logger;
  4. import org.slf4j.LoggerFactory;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.web.servlet.error.ErrorAttributes;
  7. import org.springframework.boot.web.servlet.error.ErrorController;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import org.springframework.web.servlet.ModelAndView;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. @RestController
  14. public class MainsiteErrorController implements ErrorController {
  15. private Logger logger = LoggerFactory.getLogger(getClass());
  16. private static final String ERROR_PATH = "/error";
  17. @Autowired
  18. ErrorAttributes errorAttributes;
  19. @RequestMapping(
  20. value = {ERROR_PATH},
  21. produces = {"text/html"}
  22. )
  23. public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {
  24. int code = response.getStatus();
  25. if (404 == code) {
  26. return new ModelAndView("error/404");
  27. } else if (403 == code) {
  28. return new ModelAndView("error/403");
  29. } else if (401 == code) {
  30. return new ModelAndView("login");
  31. } else {
  32. return new ModelAndView("error/500");
  33. }
  34. }
  35. @RequestMapping(value = ERROR_PATH)
  36. public R handleError(HttpServletRequest request, HttpServletResponse response) {
  37. response.setStatus(200);
  38. int code = response.getStatus();
  39. if (404 == code) {
  40. return R.error(404, "未找到资源");
  41. } else if (403 == code) {
  42. return R.error(403, "没有访问权限");
  43. } else if (401 == code) {
  44. return R.error(403, "登录过期");
  45. } else {
  46. return R.error(500, "服务器错误");
  47. }
  48. }
  49. @Override
  50. public String getErrorPath() {
  51. // TODO Auto-generated method stub
  52. return ERROR_PATH;
  53. }
  54. }