SpringBoot가 JSP대신 Thymeleaf를 지원하기 때문에 거의 사용하진 않겠지만 간혹 JSP를 사용하는 경우도 있다.
이때 IntelliJ에서 바로 실행했을 때 JSP파일을 찾지 못해서 문제가 발생하는 경우가 있다.
일단, SpringBoot에서 JSP를 사용하는 법을 먼저 알아보면,
maven 기준으로 pom.xml에 아래 두개의 dependency를 넣어준다.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
또한 jar패키징을 사용하면 안되고, war로 패키징을 해야한다.
그리고 src/java/main 밑에 webapp이라는 디렉토리를를 추가해주고 그 밑에 WEB-INF라는 디렉토리도 넣어줘야 한다.
이제 application.properties(yml)에 view에 prefix와 suffix만 지정해주면 jsp를 사용할 수 있는 환경은 완성된다.
server:
port: 8082
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
컨트롤러에서 view이름을 넘겨주면 이제 해당하는 jsp파일을 실행할 수 있다.
문제는 여기서 발생한다.
단순히 인텔리제이에서 SpringBoot 실행하듯이 실행하면 해당하는 파일을 못찾는다고 나온다.
해결 방법은 maven명령어로 springboot:run을 실행 옵션으로 주면 된다.
일단 Edit Configurations을 들어간다
Add New Configuration으로 maven을 추가한다.
실행할 프로젝트 디렉토리를 설정해주고 CommandLine에 spring-boot:run을 적어준다.
이렇게 메이븐으로 실행하게 되면 문제없이 jsp가 잘 잡히게 될 것이다.
'스프링(부트) > 에러 모음집(순서 뒤죽박죽)' 카테고리의 다른 글
[스프링부트] 스프링부트 멀티모듈 에러 (SpringBoot Multi-module Error) (1) | 2019.10.28 |
---|
댓글