[SpringBoot] JSP 연결하기
- Web/SpringBoot
- 2022. 9. 25.
SpringBoot, JSP 연결하기
SpringBoot 설정하기
SpringBoot에서 JSP를 불러오기 위해서는 다음과 같이 파일을 설정해야 한다.
webapp 디렉터리 생성, WEB-INF 디렉터리도 생성해야 한다.
JSP를 한 번쯤 사용했다면, 'jsp는 WEB-INF 안의 내용을 불러온다.'라고 배운 적이 있을 것이다.
그런 의미로, JSP를 사용하기 위해서는 기본적으로 위와 같이 설정해야 한다.
Gradle 설정
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
Gradle 사용할 경우, 두 가지의 설정은 반드시 해야 한다.
JSTL은 JSP사용을 좀 더 매끄럽게 하기 위함이므로, 반드시 사용할 필요는 없다.
Maven 설정
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- jstl 라이브러리 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
Maven으로 할 경우에는 위와 같이 설정하면 된다.
JSTL은 JSP의 사용을 좀 더 매끄럽게 하기 위함이므로, 반드시 사용할 필요는 없다.
application.properties 설정
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
jsp를 불러올 때 기본 설정이다.
jsp를 불러올 때, 경로를 생략하는 역할을 하고 있으며 또한 확장자를 생략함으로써, SpringBoot에서 Page의 이동을 가시성 있게 보여준다.
이를 통한 예시는 아래와 같다.
@Controller
public class MainController {
@GetMapping("/")
public String default01() {
System.out.println("main");
return "main";
}
}
컨트롤러를 불러오기 위해 임의의 값을 설정하였다.
여기서 주의점은 return의 결과이다.
type은 기본적으로 String 형식을 사용하고 있으며, String의 Value값이 불러올 jsp의 위치이다.
return에 main이 적혀 있으므로, /WEB-INF/main.jsp를 불러온다.
여기서 application.properties에서 prefix와 suffix를 설정했으므로 자동으로 위를 표현한다.
이를 절대 경로로 정의할 수도 있다.
마무리
views 안을 사용하기 위해서는 prefix를 설정 잘하면 된다.
처음에는 왜 안됐는지는 정확히 모른다. Build Path문제인지... Update 문제인지...
다만 확실한 것은 위의 코드로는 된다는 것이고.
안 될 때는 그냥 재부팅해보는 것도 마음 편할 수 있다는 점이다.
'Web > SpringBoot' 카테고리의 다른 글
[SpringBoot] JPA, NotNull 처리하기 - Default 적용 방법 (0) | 2022.12.04 |
---|---|
[SpringBoot] JSP 자동 업데이트 (0) | 2022.09.26 |
[SpringBoot] Logback 설정하기 (0) | 2022.06.27 |
[SpringBoot] JPA 연동하기 (0) | 2022.06.16 |
[SpringBoot] Interceptor 사용하는 방법 (0) | 2022.03.26 |