SpringBoot 커스텀 에러페이지 설정 방법

SpringBoot 기본 에러페이지

spring_boot_error_page 잘못된 URL 호출 시 위와 같은 404 에러페이지가 표출됩니다.
사용자가 보기에 미관상 좋지 않으므로, 커스텀 에러페이지로 변경하면 좋습니다.


SpringBoot 커스텀 에러페이지 설정

커스텀 에러페이지 예시

spring_boot_custom_error_page

application.properties 설정

server.error.path=/error

에러 발생 시 요청할 URL을 설정합니다. (기본값 /error 그대로 사용하면 설정하지 않아도 됩니다.)

CustomErrorController 생성

package com.chunjae.archive_cms.common.error;

import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletResponse;

@Controller
public class CustomErrorController implements ErrorController {

    @GetMapping("/error")
    public String handleError(HttpServletResponse response, Model model) throws Exception {
        int statusCode = response.getStatus();

        model.addAttribute("statusCode", statusCode);
        return "error/error";
    }
}

ErrorController를 상속하는 커스텀 에러 컨트롤러를 구현합니다.

error.jsp 예시

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="ko" style="overflow:hidden;">
<jsp:include page="../common/layout/simpleHeader.jsp"/>
<body>
  <div class="wrap h100">
    <div class="container">
      <div class="inner">
        <div class="error-cnt">
          <img src="../images/admin/error_img.png" alt="">
          <span class="tit">요청하신 페이지를 찾을 수 없습니다.</span>
          <span class="txt">요청하신 페이지가 사라졌거나 잘못된 경로로 접근하여<br>일시적으로 사용할 수 없습니다.</span>
          <span class="txt">입력하신 페이지 정보를 한번 더 확인해주길 바랍니다.</span>
          <a href="javascript:history.back();" class="btn">이전페이지</a>
        </div>
      </div>
    </div>
  </div>
</body>
</html>

error 폴더 안에 error.jsp를 생성하면 적용됩니다.

Leave a comment