Spring Boot JSP 활성화

By | 2020년 11월 19일
Table of Contents

Spring Boot JSP 활성화

제약사항

반드시 war 로 패키징해야 한다.

plugins {
    id 'org.springframework.boot' version '2.4.0'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
    id 'war'
}

JSP 엔진 추가

dependencies {
    // ......
    implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
    implementation 'javax.servlet:jstl'
    // ......
}

디렉토리 추가

src/main/webapp/WEB-INF/jsp 폴더를 추가한다.

파일 추가

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>View Test Page</title>
</head>
<body>
    <h2>Hello, World!</h2>
</body>
</html>

application.yml 수정

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/
      suffix: .jsp

IntelliJ 에서의 추가설정

bootRun 으로 실행을 해야 404 에러가 나지 않는다.

JSP 에 데이타 전달

ModelMap 으로 데이타를 전달한다.

@Controller
public class AdminIndexController {

    @GetMapping("/admin/")
    public String index(HttpServletRequest request, ModelMap model) {
        model.addAttribute("userName", request.getAttribute("userName"));
        return "/admin/index";
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
로그인(<%= request.getAttribute("userName") %>)
</body>
</html>

답글 남기기