본 포스팅은
https://chanho0912.tistory.com/19?category=866707
해당 포스팅이 완료되었다고 가정하고 진행하겠습니다.
이번에는 JSP 설정을 진행해보겠습니다.
우선 SpringBoot는 기본적으로 JSP를 권장하지 않습니다. 따라서 사용하시기에 앞서 몇 가지 설정이 필요합니다.
build.gradle 파일에 jsp 의존성을 추가해줍니다.
/* for JSP */
compile('javax.servlet:jstl')
compile("org.apache.tomcat.embed:tomcat-embed-jasper")
jsp파일은 기본 spring 엔진에서 실행되지 않습니다. 따라서 별도의 jstl설정이 필요합니다.
# Server
server.port=8000
server.servlet.context-path=/BlogProject
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.enabled=true
server.servlet.encoding.force=true
# View with JSP
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
우선 application.properties에 다음과 같은 설정값을 넣어주겠습니다.
1. SpringBoot 프로젝트를 로컬 환경에서 실행시키면 기본적으로 8080 port에 톰캣이 실행됩니다. 하지만 이렇게 되면 두 개 이상의 프로젝트를 동시에 돌릴 수 없게 됩니다. 따라서 8000번으로 설정해주었습니다.
2. url path에 /BlogProject를 추가해 주었습니다.
3. JSP 파일에 대해 prefix와 suffix를 추가해주었습니다.
기본적으로 spring에서 권장하는 뷰 템플릿을 사용하면, src/main/resources/templates에서 자동으로 파일을 찾아줍니다. 하지만 jsp의 경우 그렇게 작동하지 않기 때문에 별도의 경로를 추가해주셔야 합니다.
즉 view가 담길 디렉토리의 구조는 다음과 같이 설정됩니다.
src/main/webapp/WEB-INF/views/xxx.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>test.jsp</h1>
</body>
</html>
test.jsp를 다음과 같이 사용해보겠습니다.
package com.BlogWithSpringBoot;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class JSPTestController {
// localhost8000/BlogProject/goJSP
@GetMapping("/goJSP")
public String JSPFileTest() {
// prefix + ret value + suffix
System.out.println("JSPFileTest()");
return "test";
}
}
return value로 test만 입력해주어도,
앞에 설정해두셨던 prefix와 suffix가 앞 뒤로 추가되어 webapp/WEB-INF/vies/test.jsp가 반환되게 됩니다.
다음과 같이 해당 View가 반환되었으면 설정이 완료되었습니다.
*저의 글에 대한 피드백이나 지적은 언제나 환영합니다.
'Backend > Spring' 카테고리의 다른 글
[Spring/JPA] 영속성 컨텍스트 이해하기 (2) | 2021.06.29 |
---|---|
[SpringBoot] 블로그 프로젝트 #2 JPA 설정 및 Entity 생성 (0) | 2021.06.29 |
[Spring] Spring, Postman을 통해 Http통신 테스트 (0) | 2021.06.25 |
[SpringBoot] 블로그 프로젝트 #0 Github 연동하기 (0) | 2021.06.24 |
[SpringBoot] SpringBoot와 Mysql 연동 (0) | 2021.06.24 |