개요
View로 JSP를 사용하는 게시판과 Thymeleaf를 사용하는 게시판 2개로 나누기 위해 설정 파일에서 JSP와 Thymeleaf가 충돌나지 않도록 설정해준다.
설정 파일
#view resolver
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
#thymeleaf
spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.view-names=thymeleaf/*
#on dev env
spring.thymeleaf.cache=false
우선 JSP, Thymelaf 모두 prefix, suffix를 알맞게 설정한다. 두 설정 만으로 Spring Boot를 실행시키면 View 이름을 찾는 과정에서 충돌이 발생한다.
index.jsp, index.html 라는 두 파일이 있고 두 파일 모두 prefix 기준으로 가장 루트 경로에 있다고 가정한다. 두 파일 모두 index라는 view name으로 찾을 수 있기 때문에, 컨트롤러에서 index를 찾으면 두 파일 모두 해당돼버려 충돌이 난다.
이를 위해 필요한 것이 view-names 설정이다.
spring.thymeleaf.view-names=thymeleaf/*
thymeleaf 설정에서 위와 같이 view-names를 설정하면, Spring Boot는 컨트롤러에서 찾는 view name 앞에 thymeleaf/ 가 붙을 시 thymeleaf의 경로에서만 파일을 찾게되어 JSP와 구분된다.
@GetMapping("/jsp-board/write-form")
public String getWriteForm() {
return "/jsp-board/write-form";
}
...
@GetMapping("/thyme-board/write-form")
public String getWriteForm() {
return "thymeleaf/thyme-board/write-form";
}
위 자바 컨트롤러 코드와 같이 return 하는 view name에서 구분을 주면, thymeleaf 와 JSP 모두 View 로 사용이 가능하다.
'토이 프로젝트 > 게시판 웹' 카테고리의 다른 글
[Spring Boot] Google 소셜 로그인: 서버 단 Google OAuth2 API - 게시판 웹 (0) | 2024.04.14 |
---|---|
[Spring Boot] Google 소셜 로그인: 가장 쉽게 구현하기(HTML, JavaScript API) - 게시판 웹 (0) | 2024.03.18 |
[Spring Boot] Google 소셜 로그인: GCP 사전 설정 - 게시판 웹 (1) | 2024.03.16 |
[Spring Boot] 2.MariaDB 구성 - 게시판 웹 (0) | 2024.02.28 |
[Spring Boot] 1.MariaDB 설치 - 게시판 웹 (0) | 2024.02.18 |