MapleStory Cookie With Halo

๐Ÿƒ Spring/๐Ÿƒ Spring Boot

[SpringBoot]์ž…๋ฌธ-Viewํ™˜๊ฒฝ์„ค์ •

๋‰ด์ด NUEY 2025. 1. 2. 23:39
๋ฐ˜์‘ํ˜•

 

Welcome Page ๋งŒ๋“ค๊ธฐ

 

  1. src-main-resources-staticํด๋”์— ์›ฐ์ปดํŽ˜์ด์ง€(์‹œ์ž‘ํŽ˜์ด์ง€)์ธ index.htmlํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.
    โ€ป ์ฐธ์กฐ : 2025.01.02 - [๐Ÿƒ Spring/๐Ÿƒ Spring Boot] - [SpringBoot]ํ•„์š”ํ•œ ๊ธฐ๋Šฅ ์ฐพ๋Š” ๋ฒ•
  2. ๊ฐ„๋‹จํ•œ ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด์คฌ๋‹ค.
    ↓ ์ฝ”๋“œ
    ๋”๋ณด๊ธฐ
    <!DOCTYPE html>
    <html lang="ko">
    <head>
        <titl>Hello</titl>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <html>
    <body>
    Hello
    <a href="/hello">hello</a>
    </body>
    </html>
    </html>

 


 

Thymeleaf

 

  1. Controller๋‹จ์„ ๋งŒ๋“ค์—ˆ๋‹ค.
    • Controller๋Š” javaํŒŒ์ผ๋“ค ์ค‘ ์‹œ์ž‘ ์ ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

      • @Controller : ์–ด๋…ธํ…Œ์ด์…˜@์„ ์ด์šฉํ•ด ์Šคํ”„๋ง์€ ํ•ด๋‹น ํด๋ž˜์Šค๊ฐ€ ์ปจํŠธ๋กค๋Ÿฌ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๋ฆฐ๋‹ค.

      • @GetMapping("๋ฉ”์†Œ๋“œ๋ช…") : ํ™”๋ฉด๋‹จ์—์„œ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ๋ช…์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ฐพ์•„์˜จ๋‹ค.

      • Mode : MVCํŒจํ„ด์˜ ๊ทธ ๋ชจ๋ธ์ด๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.

      • model.addAttribute(name, value) : ๋ชจ๋ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š”๋‹ค.

      • return "hello" : hello๋ผ๋Š” ํ™”๋ฉด์œผ๋กœ model์„ ๋˜์ ธ์ค€๋‹ค.

        • ๐ŸŒŸ ์ด ๋•Œ ํ™”๋ฉด์„ ์ฐพ์•„๊ฐ€๊ฒŒ ํ•ด์ฃผ๋Š” ๋ทฐ ๋ฆฌ์กธ๋ฒ„(viewResolver) ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.
          templates/hello.html์ด ์ฐพ์•„๊ฐ€๋„๋ก ์„ธํŒ…๋˜์–ด์žˆ๋‹ค. (Thymeleafํ…œํ”Œ๋ฆฟ ์—”์ง„์ด ์ฒ˜๋ฆฌ)


    • ์ฝ”๋“œ
      ๋”๋ณด๊ธฐ
      package hello.hellospring.Controller;
      
      import org.springframework.stereotype.Controller;
      import org.springframework.ui.Model;
      import org.springframework.web.bind.annotation.GetMapping;
      
      @Controller
      public class HelloController {
      
          @GetMapping("hello")
          public String hello(Model model) {
              model.addAttribute("data", "hello!!");
              return "hello";
          }
      
      }
  2. ํ™”๋ฉด๋‹จ ๋งŒ๋“ค๊ธฐ
    • <html xmlns:th="http://www.thymeleaf.org"> : ํƒ€์ž„๋ฆฌํ”„๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด th:๋ผ๋Š”์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

    • <p th:text="'์•ˆ๋…•ํ•˜์„ธ์š”. ' + ${data}" >์•ˆ๋…•ํ•˜์„ธ์š”. ์†๋‹˜</p>

      • th:text:  ํƒ€์ž„๋ฆฌํ”„ ๊ธฐ๋Šฅ ์ค‘ text๋ผ๋ฅธ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•œ๋‹ค.
      • ${ data } : ์ปจํŠธ๋กค๋Ÿฌ๋‹จ์—์„œ model์— ๋‹ด๊ธด data๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€ '์†๋‹˜'์ด๋ž€ ๋ถ€๋ถ„์„ ์น˜ํ™˜ํ•œ๋‹ค.
         
    • ๋”๋ณด๊ธฐ
      ์ฝ”๋“œ
      <!DOCTYPE html>
      <html xmlns:th="http://www.thymeleaf.org">
      <head>
          <titl>Hello</titl>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      </head>
      <html>
      <body>
          <p th:text="'์•ˆ๋…•ํ•˜์„ธ์š”. ' + ${data}" >์•ˆ๋…•ํ•˜์„ธ์š”. ์†๋‹˜</p>
      </body>
      </html>
      </html>
  3. ์™„๋ฃŒ! pํƒœ๊ทธ์—๋Š” ์Šคํ”„๋ง๊ณผ ํƒ€์ž„๋ฆฌํ”„๋ฅผ ์ด์šฉํ•ด '์†๋‹˜' → 'hello'๋กœ ๋ฌธ์ž๊ฐ€ ์น˜ํ™˜๋˜์—ˆ๋‹ค.
    ๊ฐœ๋ฐœ์ž๋„๊ตฌ์—์„œ๋„ ๋ฐ”๋€ ๊ฒŒ ํ™•์ธ๋œ๋‹ค.

 


โ€ป ์ฐธ์กฐ : https://www.inflearn.com/roadmaps/373

๋ฐ˜์‘ํ˜•