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>