WORK/JAVA

spring boot 에러페이지 만들기

im 수캥이 2022. 11. 1. 20:57

spring boot 에서 

@RequestMapping(value = "/error") 

값이 존재하지 않으면 기본 에러 페이지가 노출 된다.

그래서 java 파일 하나 만들어서 @RequestMapping(value = "/error")  부분을 선언해주면 끝

 

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;


@Controller
public class Error implements ErrorController {
    private String ERROR_TEMPLATES_PATH = "/common/";

    @RequestMapping(value = "/error")
    public String handleError(HttpServletRequest request) {
        Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
        if(status != null){
            int statusCode = Integer.valueOf(status.toString());
            // 404
            if(statusCode == HttpStatus.NOT_FOUND.value()){
              return ERROR_TEMPLATES_PATH  + "Error_404.jsp";
            }
            // 403
            if(statusCode == HttpStatus.FORBIDDEN.value()){
             return ERROR_TEMPLATES_PATH  + "Error_403.jsp";
            }
            // 500
            if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()){
            return ERROR_TEMPLATES_PATH  + "Error_500.jsp";
            }
        }
        return ERROR_TEMPLATES_PATH  + "Error_ETC.jsp";
    }
}

 

에러 발생했을 경우 위 작성한 jsp를 호출하게 된다.