개인프로젝트/기능프로그램_오늘뭐입지

20240518_에러페이지

일일일코_장민기 2024. 5. 19. 02:26
728x90

 

아주 간단하고 사소한 기능이다.

그런데 MSA랑 합쳐지니 이런 금쪽이도 따로 없다...

 

원래 설계는 이러하다

1. 사이트는 공통된 에러페이지를 써야지

2. 에러페이지는 core 모듈에 넣어도 되지 않을까?

3. 안 되네?

 

우선 Core 모듈은 가동되지 않고 사용하고 있기 때문에 jsp를 못 불러오는 것 같다...(사실 잘 모르겠다)

msa와 spring boot 전반에 대한 지식과 이해를 해야 알 수 있는 부분인데 아직 공부가 부족하다.

Thymeleaf로 구현하려고 했으나 왜인지 이미지가 절대로 불러와지지 않는다. weather 모듈의 에러가 core 모듈의 Thymeleaf로 연결되긴 하는데 이미지가 아예 인식이 되질 않는다...

 

결국 주먹구구식 설계가 되고 말았다.

1. 공통된 에러 페이지를 연결하는 컨트롤러와 이미지는 core 모듈

2. 에러페이지 jsp만 각 하위모듈에 복사

3. 된다...

 

결국 비효율적인 방법을 통해서 구현하긴 했는데 너무 마음에 안 들어서 미쳐버리겠다

웃긴 건 하위모듈 jsp에서 이미지는 core 모듈의 것으로 잘 불러 온다. 아오 

 

더보기

core 모듈 - 컨트롤러

 

 

 

 

weather 모듈 - 404.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
</head>
<body>
<h1><c:out value="${statusCode}"/>번 에러가 발생했습니다!</h1>
<img src="<c:url value='resources/images/error-404.jpg'/>" alt="404에러 이미지" height="500px"><br>
<c:out value="${errorMessage}"/>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
        crossorigin="anonymous"></script>
</body>
</html>

 

 

 

결국

 

core 모듈: 컨트롤러 + application 설정 + 이미지

기타 모듈: jsp

라는 기묘한 형태를 갖게 되었다....

 

꼭 개선하고 싶은데...될ㄲ?>?>?>?/