반응형
Spring Boot는 resource 아래의 static폴더와 templates폴더를 view로 기본 지정되므로, jsp를 view로 사용할 경우 아래 설정을 추가로 해줘야 한다.
1. 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>
2. webapp 폴더 만들기
-- 경로
src/main/webapp/WEB-INF/jsp
3. 설정파일(application.properties 또는 application.yaml)에 view 관련 추가
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
application.yaml
spring:
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
4. 테스트
테스트용 Controller 생성
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class JspTestController {
@RequestMapping(value = "/")
ModelAndView root() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("test", "테스트 내용입니다.");
modelAndView.setViewName("index");
return modelAndView;
}
@RequestMapping(value = "/test")
public String test() {
return "test/testJsp";
}
}
2개의 jsp 파일 생성
src/main/webapp/WEB-INF/index.jsp
<%@ page language="java" contentType="text/html; ISO-8859-1; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Document</title>
</head>
<body>
스프링부트에서 JSP<br/>
${test}
</body>
</html>
src/main/webapp/WEB-INF/test/testJsp.jsp
testJsp
브라우저 접속 및 확인
maven deploy시 jar로 배포하면 webapp 폴더는 배포되지 않는다.
spring boot에서는 war 사용을 권고하지 않는다.
war로 배포하고 싶을 경우 pom.xml 파일에 package 부분을 변경
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--여기 -->
<packaging>war</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
반응형
'개발 > spring, spring boot' 카테고리의 다른 글
[String Boot] 배너 변경 (0) | 2021.06.24 |
---|---|
[Spring Boot] Thymeleaf 예제 (0) | 2021.01.17 |
[Spring Boot] Undertow 사용하기 (maven, gradle 3.x) (0) | 2021.01.17 |
[spring 에러] BeanDefinitionStoreException - probably due to a new Java class file version that isn't supported yet (0) | 2021.01.17 |
[spring] 스프링 관련 프로젝트 (0) | 2021.01.17 |
댓글