Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

승띵이의 개발일지

[Spring Boot] 어노테이션 활용 (주소 설정 & HTML 연동) 본문

언어/Spring Boot

[Spring Boot] 어노테이션 활용 (주소 설정 & HTML 연동)

승띵이 2022. 10. 25. 21:52
어노테이션(@Controller, @RequestMapping) 활용

 

어노테이션 중 @Controller, @RequestMapping를 활용하여 주소(http://Localhost:port/.../...)를 설정할 수 있다.

 

어노테이션에 대한 자세한 설명은 https://myung-it.tistory.com/14 참고

 

[Spring Boot] 어노테이션(Annotation)

어노테이션(Annotation) 어노테이션은 후술하는 클래스, 메서드, 변수 등의 상태나 속성을 표시하기 위해 사용한다. @Deprecated [Class | Method] : 해당 클래스 혹은 메서드가 더 이상 사용될 수 없음을 의

myung-it.tistory.com

 

package com.smchoi.study_web.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller(value = "com.smchoi.study_web.controllers.HomeController") 
//Controller 중복 방지를 위해 패키지 주소를 값으로 입력

@RequestMapping(value = "/")    //주소에 클래스에 붙은 Mapping 이 오고
public class HomeController {
    @RequestMapping(value = "/") //메서드에 붙은 Mapping이 온다. ex)http://localhost:8080/home/index 							 
    public ModelAndView getIndex() {
        ModelAndView modelAndView = new ModelAndView("home/index"); 
        //tamplates의 home 파일의 index.html을 의미한다.
        
        modelAndView.addObject("message", "반갑티비");  
        //html 파일에서 활용 가능(동적으로 활용가능)
        
        return modelAndView;
    }
}

 

HTML 연동

 

HTML을 연동하기 위해서는 타임리프(Thymeleaf)를 사용한다.

 

타임리프에 대한 자세한 설명은 https://myung-it.tistory.com/16  참고

 

[Spring Boot] 타임리프 (Thymeleaf)

타임리프(Thymeleaf) 타임리프(Thymeleaf)는 동적인 HTML 문서를 만들고 이를 컨트롤러와 연결시킬 수 있도록하는 템플릿 엔진의 일종이다. 타임리프 문법을 사용하는 모든 HTML 파일 내의 태그에는 반

myung-it.tistory.com

 

@RequestMapping(value = "/")
public ModelAndView getIndex() {
        ModelAndView modelAndView = new ModelAndView("home/index");
        modelAndView.addObject("message", "반갑티비");  
        return modelAndView;
    }

위 코드에서 ModelAndView 객체를 생성하여 tamplates의 home 파일의 index.html 파일에 접근할 수 있다.

modelAndView.addObject() 메서드를 활용하여 modelAndView.addObject(속성 이름, 속성 값)을 지정하여 HTML 파일에서 동적으로 활용 가능하다.

 

<!doctype html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Home</title>
</head>
<body>
<h1 th:text="${message}"></h1>  <!--타임리프 문법으로 땡겨오기-->
<h1 th:text="${3 + 5 * 1}"></h1> <!--이런 연산도 가능-->
</body>
</html>

 

 

실행 결과

 

위 코드들을 실행시키고 http://localhost:8080/에 접속하면 성공적으로 실행된 것을 확인할 수 있다.

 

 

 

 

Comments