728x90
취업 전 교육을 받을 때는 프론트와 백이 각각 Next.js와 springBoot로 나뉘어져 있어서 JSP의 존재를 몰랐지만 취업을 하고 나서 프로젝트들이 모두 JSP로 되어있었기에 공부하고 조금 더 알아볼 겸 연동하는 방법을 정리한 글입니다.
1. 의존성 추가
build.gradle (dependencies 안에 추가)
implementation 'javax.servlet:jstl'
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
pom.xml (<dependencies> </dependencies> 사이에 추가)
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!-- tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
- jstl - JSP의 라이브러리
- tomcat-embed-jasper - 스프링부트에서 JSP템플릿엔진을 사용할 수 있게 해주는 라이브러리
2. view 경로 수정
application.properties
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
application.yml
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
- prefix - view(페이지)들이 있는 기본 경로
- suffix - view(페이지) 확장자
3. 프로젝트 구조(디렉토리) 수정
기존 프로젝트의 [src] - [main] 하위에 [webapp] 디렉토리를 생성하고 앞서 설정한 view 기본 경로를 똑같이 생성해준다.
4. 페이지 추가 및 컨트롤러 생성
index.jsp (위치: [src] - [main] - [webapp] - [WEB-INF] - [views] - [index.jap])
<%--
Created by IntelliJ IDEA.
User: user
Date: 2023-10-30
Time: 오전 11:08
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>메인 페이지</h1>
</body>
</html>
MainController.java
@Controller
@Slf4j
public class MainController {
/**
* 메인 페이지
*
* @param httpServletRequest HttpServletRequest
* @return /
*/
@RequestMapping("/")
public String mainPage(HttpServletRequest httpServletRequest) {
log.info(httpServletRequest.getRequestURI());
return "/index";
}
}
- 이 때 return 의 값은 보여줄 페이지의 jsp파일명(확장자 제외)으로 작성해준다.
- view 기본경로가 /WEB-INF/views/ 이므로 해당 경로를 생략하고 하위의 디렉토리 및 파일 명을 작성한다.
결과
팁1 .jsp 파일 생성할 때 기본 템플릿 나오게 하는 법 (인텔리제이)
'~2025' 카테고리의 다른 글
스프링 부트 + 마이바티스 - underscore to camelcase 적용 (0) | 2023.11.05 |
---|---|
스프링부트 + 마이바티스 연동 (1) | 2023.11.02 |
마이바티스 The column index is out of range (0) | 2023.09.21 |
인텔리제이 스프링부트 실행 오류 - 환경 변수 주입 안되는 오류 (0) | 2023.09.20 |
스프링 시큐리티 로그인 구현 + jwt (스프링 부트 3.0 이상, 시큐리티 6.1 이상) (0) | 2023.06.27 |