새소식

Framework/🍃 Spring

[Spring boot] 에러 혹은 404 페이지로 이동시키는 방법

728x90

🔥 Problem

👉 SEO의 강화를 위해 404 에러가 발생하였을 경우, 404 페이지로 이동시킬 필요가 있습니다.

🧙 Solution

👉 ErrorPageController를 하나 제작합시다.

아래의 소스코드를 참고하여 작업하시면 됩니다.

package com.ointex.noticeboard.controller;


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

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

@Controller
public class ErrorPageController implements ErrorController {

    @Override
    public String getErrorPath() {
        return null;
    }

    @GetMapping("/error")
    public String handleError(HttpServletRequest request) {
        Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);

        if(status != null){
            int statusCode = Integer.valueOf(status.toString());

            if(statusCode == HttpStatus.NOT_FOUND.value()) {
                return "error/404.html";
            } else {
                return "error/error.html";
            }
        }

        return "error/error.html";
    }
}

 

👉 error.html 혹은 404.html은 제작하셨죠?

해당 페이지들을 적절한 경로에 배치시키면 끝납니다.

 

"적절한 경로" 라고 표현한 이유는 아시겠지만
이 포스팅을 보는 분들마다 프로젝트 환경이 다르기 때문입니다.

 

저는 JPA 프로젝트이므로 templates 하단에 error 폴더를 만들었습니다.

작업에 참고가 되실 듯 합니다. 잘 모르시겠다면, 댓글 남겨주세요 ^ ^

🏆 Result

👉 잘못된 URL로 들어갔을 경우, 404페이지로 강제이동되는 것을 볼 수 있습니다.

Did my writing help you?

Please press the Thumb Up button
If you have any questions, please leave them in the comments

💯포스트 후원하기
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.