일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- REST
- spring-framework
- maven
- 웹프로젝트
- hashcode
- SpringFramework
- Spring Boot
- jsp
- git
- Linux
- 스프링프레임워크
- JAR
- Pipeline
- mybatis
- Gradle
- 이클립스
- tomcat
- 스프링부트
- 개발
- oracle
- gitlab
- Spring Framework
- springboot
- annotaion
- Spring
- War
- Jenkins
- Web
- java
- soap
- Today
- Total
Verity's Daily Logs_
[Spring Boot]JSP 파일 생성 및 연결하기 본문
spring initializr 사이트(start.spring.io/)를 이용하여 생성한 프로젝트는 기본적으로 View 가 타임리프(Thymeleaf)를 따르도록 되어있다. 타임리프가 아닌 JSP로 개발하기 위해서는 dependency 및 일부 설정을 추가해야 한다.
1. build.gradle 추가
JSP 사용을 위하여 build.gradle 파일에 아래 Dependency 구문을 추가한다. (수정 후 빌드는 필수)
dependencies {
...생략
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
...생략
}
2. application.properties 추가
Controller에서 리턴될 String 값의 prefix, suffix를 지정해 줘야 한다. 지정할 파일명은 application.properties이며,
이때 prefix정보앞의 기본 루트 정보는 프로젝트/src/main/webapp이다.
spring.mvc.view.prefix: /WEB-INF/views/
spring.mvc.view.suffix: .jsp
#JSP수정시 서버 재시작없이 바로 적용될 수 있게 설정
server.servlet.jsp.init-parameters.development=true
3. index.jsp 생성
앞서 application.properties 에서 지정해준 경로에 확인 가능한 jsp 파일 하나를 생성한다. webapp 폴더부터 없을 수 있으니 당황하지 말고 폴더까지 아래 경로와 동일하게 생성해 주도록 한다.
파일 생성 경로: /src/main/webapp/WEB-INF/views/index.jsp
4. 기본 루트(/) Controller 생성
localhost:8080/ 에 접속했을 때 처리할 수 있는 기본 컨트롤러를 하나 생성한다.
파일 생성 경로: /src/main/java/com/example/demo/controller/HomeController.java
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
System.out.println("home controller start");
return "index";
}
}
5. 프로젝트 실행 후 확인
서버 실행 후 localhost:8080/ 경로로 접속하면 아까 생성했던 jsp 파일 내용을 확인할 수 있다.
6. JSTL 추가하기
JSTL은 JSP Standard Tag Library의 약자로, JSP 개발을 단순화하기 위한 태그 library이다. 주로 컨트롤러로부터 전달받은 데이터를 화면에 표시해 주기 위해 사용한다.
HomeController.java, index.jsp 내용을 아래와 같이 수정하고 화면이 어떻게 바뀌는지 확인해보자.
HomeController.java : Model 객체에 데이터 지정
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
System.out.println("home controller start");
model.addAttribute("name", "HomeController");
return "index";
}
}
index.jsp : taglib 추가, 데이터 바인딩 부분 추가
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
hello!!!
이 컨트롤러의 NAME은 ${name} 입니다.
</body>
</html>
[결과화면]
7. SiteMesh 적용하기
다음에는 기본 화면 JSP 레이아웃을 작성하기 위한 SiteMesh를 적용해 볼 것이다.
'Spring Framework' 카테고리의 다른 글
[Spring Boot]JDBC+MyBatis 연결하기(1) (0) | 2020.10.14 |
---|---|
[Spring Boot]SiteMesh 설정하기 (0) | 2020.10.13 |
[Spring Boot]프로젝트 생성하기 (0) | 2020.10.12 |
Spring Framework VS Spring Boot (0) | 2020.10.12 |
[Spring-Framework]MyBatis와 연동하기-2 (0) | 2020.08.25 |