기존 Spring Framework에서는 웹 애플리케이션을 구성할 때, View 영역에 JSP를 많이 사용했었다.
Spring Boot에서는 View 영역 관련하여 내용을 찾으면 JSP를 사용하는 것보다 Thymeleaf, FreeMarker 등을 사용한 예제를 더 많이 접했을 것입니다.
Spring Boot에서는 공식 문서에도 나와 있듯이 JSP를 사용하는 것을 권하지 않고 다른 템플릿 엔진을 추천하고 있다.
그렇더라도 JSP를 사용하고 싶다면 어떻게 설정해야 하는지 궁금할 것입니다.
그래서 이번 글에서는 Spring Boot에서 JSP를 사용하는 예제에 대해 살펴보겠습니다.
Spring Boot 프로젝트 생성
Spring Boot 프로젝트를 생성하셨다면 이 단계를 건너뛰셔도 됩니다.
Spring Boot 프로젝트는 https://start.spring.io/ 사이트에서 쉽게 생성할 수 있다. Generate Project 버튼을 클릭하면 프로젝트를 압축 파일로 다운로드 받을 수 있다.
pom.xml 또는 build.gradle 파일에 의존성 추가
필요한 의존성 패키지를 추가합니다.
Maven을 사용한다면 pom.xml에 추가하고, Gradle을 사용한다면 build.gradle에 추가합니다.
pom.xml
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies>
build.gradle
derendencies {
compile('javax.servlet:jstl')
compile("org.apache.tomcat.embed:tomcat-embed-jasper")
}
JSP 파일을 보관할 디렉토리 생성
Spring 애플리케이션은 시작할 때, application.properties
파일에 정의된 내용을 로드한다.application.properties
파일에 spring.mvc.view.prefix
와 spring.mvc.view.suffix
프로퍼티를 설정한다.
프로퍼티 값으로는 JSP 파일이 보관될 디렉토리(/WEB-INF/jsp/)와 확장자(.jsp)를 입력한다.
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
디렉토리 생성application.properties
에 지정한 경로에 맞게 폴더를 생성한다.
JSP 파일 생성
jsp 폴더 하위에 hello.jsp
파일을 생성한다. 그리고 jsp 파일에는 아래와 같은 내용을 추가합니다.
hello.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring Boot Application with JSP</title>
</head>
<body>
Hello, Spring Boot App
</body>
</html>
Controller 생성
DispatcherServlet
으로부터 경로를 전달 받아서 실행할 Controller가 필요합니다. controller 패키지를 생성하고 하위에 HelloController
클래스를 생성한다.
주의해야 할 점으로는
@SpringBootApplication
어노테이션이 붙은 클래스와 동일한 위치 또는 하위에 Controller 클래스를 생성해야 한다. Component Scan 할 때 Controller 클래스를 찾아서 자동으로 빈을 등록하기 때문이다.
HelloController.java
package com.jayden.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public String hello() {
return "hello";
}
}
Spring Boot 애플리케이션 실행
Spring Boot 애플리케이션을 실행하고 난 뒤, 브라우저에 http://localhost:8080/hello 경로를 입력하자.
'Spring' 카테고리의 다른 글
Spring Core 라이브러리 이용해서 Properties 파일 데이터 읽기 (0) | 2019.05.28 |
---|---|
Spring Camp 2019 강의 자료 모음 (0) | 2019.05.06 |
Spring HandlerMethodArgumentResolver 인터페이스 (2) | 2019.05.05 |
Spring Boot 배너 만들기 (0) | 2019.05.04 |
REST API 문서 자동화 도구 Swagger 참고 문서 (0) | 2019.05.04 |
댓글