일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ubuntu
- it
- devops
- JVM
- laravel
- MySQL
- Spring
- Web Server
- Spring Batch
- Spring Boot
- jenkins
- elasticsearch
- 맛집
- Oracle
- 요리
- tool
- linux
- Git
- Gradle
- AWS
- ReactJS
- db
- redis
- javascript
- Design Patterns
- php
- springboot
- java
- jsp
- IntelliJ
Archives
- Today
- Total
아무거나
[spring boot] Spring Boot에서 에러 페이지 처리하기 본문
반응형
Spring Boot에서 에러 페이지 처리하기
에러가 발생할 때 웹 페이지에 에러에 대한 내용을 바로 출력하는 경우가 있다. 이와 같은 경우를 방지하기 위하여 에러페이지를 커스터마이징을 할 수 있는 컨트롤러를 만들어보자.
컨트롤러 생성
ErrorController를 Implements하여 커스텀 에러 컨트롤러를 생성한다.
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Slf4j
@Controller
public class CustomErrorController implements ErrorController {
private static final String ERROR_PATH = "/error";
@Override
public String getErrorPath() {
return ERROR_PATH;
}
@RequestMapping(value = "/error", method = RequestMethod.GET)
public String handleError(HttpServletRequest request, Model model) {
Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
HttpStatus httpStatus = HttpStatus.valueOf(Integer.valueOf(status.toString()));
log.info("httpStatus : "+httpStatus.toString());
model.addAttribute("code", status.toString());
model.addAttribute("msg", httpStatus.getReasonPhrase());
model.addAttribute("timestamp", new Date());
return "error/error";
}
}
View 생성
[error/error.html]
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Product Admin</title>
<h1>Product Admin Error Page</h1>
error code : <span th:text="${code}"></span>
<br>error msg : <span th:text="${msg}"></span>
<br>timestamp : <span th:text="${timestamp}"></span>
</head>
<body></body>
</html>
반응형
'Java & Kotlin > Spring' 카테고리의 다른 글
[Spring Boot] springboot+gradle+bootstrap 프로젝트 생성 (0) | 2019.06.07 |
---|---|
[spring boot] 특정 디렉토리에 있는 파일 목록 읽기 (0) | 2019.05.22 |
[SpringBoot] Redundant declaration: @SpringBootApplication already applies given @ComponentScan (0) | 2019.04.15 |
[SpringBoot] 간단한 Interceptor 구현 (0) | 2019.01.16 |
[Spring Boot] @ComponentScan 이란 (0) | 2019.01.16 |
Comments