Spring Boot에서 Jsp 사용하기
- 개발 IDE: intellij Community 버전
- 빌드 툴: Gradle
- 참고: start.spring.io에서 패키징을 war로 선택하셔야 합니다.
- 아래 부분에 WebMvcConfig 클래스는 굳이 생성하지 않으셔도 됩니다.
라이브러리 추가
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
- tomcat-embed-jasper: JSP 엔진 역할
- jstl: jsp 개발을 편하게 해주는 라이브러리
디렉토리 생성
- 위 사진처럼 src/main 폴더 아래에 webapp, WEB-INF, views를 순서대로 3개의 디렉토리를 생성을 해줍니다.
- 풀경로: src/main/webapp/WEB-INF/views
- 여기서 주의할 점은 jsp 파일 생성을 바로 views 폴더 아래에 생성해줍니다.
application 설정
[application.yml]
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
[application.properties]
spring.mvc.view.prefix: /WEB-INF/views/
spring.mvc.view.suffix: .jsp
파일 Configuration
- Intellij는 Eclipse와는 프로젝트 구조가 달라서 Spring Boot를 사용할 경우 jsp 사용을 추천하지 않습니다.
- configuration 패키지를 생성하여 WebMvcConfig 클래스를 생성합니다.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
}
jsp 동작 확인
- 생성된 jsp 파일이 잘 연동되는지 확인하기 위해 jsp 파일을 생성하여 코드를 입력합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>test.jsp</h1>
</body>
</html>
TempControllerTest 클래스
package com.azurealstn.myblog.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TempControllerTest {
...
@GetMapping("/temp/jsp")
public String tempJsp() {
// prefix: /WEB-INF/views
// suffix: .jsp
// 풀경로: /WEB-INF/views/test.jsp
return "test";
}
}
References
댓글