1HOON
논리적 코딩
1HOON
전체 방문자
오늘
어제
  • HOME (186)
    • ☕️ JAVA (28)
      • WhiteShip Java LIVE Study (6)
      • Effective JAVA (10)
    • 🔮 KOTLIN (4)
    • 🌱 SPRING (51)
      • 스프링 인 액션 (22)
      • JPA (18)
    • ☕️ JAVASCRIPT (6)
    • 📃 DATABASE (40)
      • ORACLE (37)
      • MSSQL (2)
    • 🐧 LINUX (4)
    • 🐳 DOCKER (5)
    • 🐙 KUBERNETES (4)
    • 🏗️ ARCHITECTURE (8)
    • 📦 ETC (26)
      • TOY PROJECT (5)
      • RECRUIT (1)
      • 그냥 쓰고 싶어서요 (14)
    • 🤿 DEEP DIVE (1)
    • 🚽 Deprecated (9)
      • PYTHON (3)
      • AWS (2)
      • HTTP 완벽가이드 (3)
      • WEB (1)

블로그 메뉴

  • 홈
  • 방명록
  • 관리

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
1HOON

논리적 코딩

[SpringBoot] 컨트롤러, View(JSP) 작성하기
🌱 SPRING

[SpringBoot] 컨트롤러, View(JSP) 작성하기

2020. 5. 30. 18:07

이번 포스팅에서는 컨트롤러를 작성하고, JSP 방식으로 View를 설정 및 연동한다.

 

 

1. 컨트롤러 작성하기

 

DemoApplication이 위치하는 패키지 하위에 controller 라는 패키지를 생성했다. DemoApplication 구동 시 해당 클래스가 위치하는 패키지를 최상위 패키지로 ComponentScan을 하기 때문이다.

그리고 controller 패키지 아래에 MainController와 RestController라는 클래스를 생성했다.

 

MainController에 아래 내용을 작성했다. @Controller 어노테이션과 @RequestMapping 어노테이션만 있으면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.ilhoon.demo.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class MainController
{
    @RequestMapping("/")
    public String main ()
    {
        return "index.html";
    }
}
 
Colored by Color Scripter
cs

 

여기까지 하면, http://127.0.0.1:8080으로 접속 시 앞서 작성한 index.html이 보이게 된다.

 

index.html 파일을 열어 아래 코드를 추가해보자. 버튼을 클릭하면 ajax로 REST 요청을 보내고 값을 받아와 텍스트에리어에 보여줄 것이다.

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
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>타이틀</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        function BTN_REST_click ()
        {
            $.ajax({
                type: "GET",
                url: "/rest/testvalue",
                success: (data) => { console.log(data); $('#contents').html(data); }
            });
        }
    </script>
</head>
<body>
    스프링 부트 반가웡!
 
    <button onclick="BTN_REST_click()">REST 테스트</button>
 
    <textarea id="contents"></textarea>
</body>
</html>
Colored by Color Scripter
cs

 

그리고 앞서 만든 RestController 클래스를 열어 아래와 같이 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.ilhoon.demo.controller;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
/**
 * @RestController 란?
 * @Controller + @ResponseBody
 * JSON 또는 XML 형태의 데이터 반환시 사용. API 서버로 활용시 많이 사용한다.
 */
@org.springframework.web.bind.annotation.RestController
public class RestController
{
 
    @RequestMapping(value = "/rest/testvalue", method = RequestMethod.GET)
    public String getTestValue ()
    {
        return "레스트컨트롤러";
    }
}
Colored by Color Scripter
cs

 

다시 index.html을 띄우고, 버튼을 클릭하면 레스트컨트롤러 라는 문자열이 텍스트에리어에 표시된다.

 

 

2. JSP 뷰 연동하기

기본적으로 스프링 부트에서는 JSP 보다는 Thymeleaf를 권장하지만, 나는 JSP가 편해서 JSP 뷰를 연동했다.

우선, 아래 이미지와 같이 src 폴더 하위에 webapp/WEB-INF/views 디렉터리를 만들어준다. jsp 파일은 이 위치에 생성할 것이다.

그리고 views 폴더에 main.jsp 라는 이름의 jsp 파일을 생성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
    JSP 페이지입니다.
    <%= request.getAttribute("testvalue")%>
</body>
</html>
Colored by Color Scripter
cs

스프링 부트 기본 설정에서는 JSP 뷰를 지원하지 않기 때문에, Dependency 추가가 필요하다. pom.xml에서 아래 의존성을 추가한다.

1
2
3
4
5
6
7
8
9
10
11
<!-- JSP 파일 지원을 위한 의존성 추가 -->
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>
<!-- JSTL 지원을 위한 의존성 추가 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
Colored by Color Scripter
cs

그리고 resources/application.properties 파일을 열어 아래 내용을 추가한다.

1
2
3
server.port=8080
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
cs

위 설정을 적용하면, 컨트롤러에서 뷰 네임을 반환하면 앞 뒤로 prefix, suffix 값이 붙어 호출할 파일을 찾게된다.

 

MainController 클래스를 열어 /jsp 요청이 왔을 때, main.jsp를 호출하도록 메서드를 작성한다.

1
2
3
4
5
6
7
8
9
@RequestMapping("/jsp")
public ModelAndView jsp ()
{
    ModelAndView model = new ModelAndView("main");
 
    model.addObject("testvalue", "안녕!");
 
    return model;
}
Colored by Color Scripter
cs

그리고 http://127.0.0.1:8080/jsp 요청을 보내면, 아래처럼 jsp 페이지가 출력된다.

 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'🌱 SPRING' 카테고리의 다른 글

[Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본  (0) 2021.10.10
[SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker  (0) 2021.05.16
[SpringBoot] 스프링 부트 프로젝트 생성  (1) 2020.05.30
@MVC : RequestMapping  (0) 2018.03.29
의존관계 주입(DI, Dependency Injection)  (1) 2017.11.30
    '🌱 SPRING' 카테고리의 다른 글
    • [Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본
    • [SpringCloud] Resilience4j와 Spring Cloud Circuit Breaker
    • [SpringBoot] 스프링 부트 프로젝트 생성
    • @MVC : RequestMapping
    1HOON
    1HOON

    티스토리툴바