Spring #3 View ํ™˜๊ฒฝ์„ค์ •

2024. 7. 16. 00:58ใ†๐Ÿ“ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ/SPRING

๋ฐ˜์‘ํ˜•

์ด๋ฒˆ์— ํ•ด๋ณผ๊ฒƒ์€ ์ •์ ํŽ˜์ด์ง€ ๊ตฌ์„ฑ๊ณผ welcomepage๋ฅผ ํ•œ๋ฒˆ ๊ตฌ์„ฑํ•ด๋ณด๋Š”๊ฑธ ํ•ด๋ณผ๋ ค๊ณ  ํ•œ๋‹ค.

 


 

welcompage ๋Š” resources/static/index.html ์„ ๊ตฌ์„ฑํ•ด์ฃผ๋ฉด Spring์—์„œ ์ž๋™์ ์œผ๋กœ welcompage๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 

resources/static/index.html ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋‚˜์„œ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

<!DOCTYPE HTML>
<html>
<head>
    <title>Hi!!!Spring</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello Spring!!
<a href="/hello">Hello Spring Link</a>
</body>
</html>

 

๋งŒ๋“ค์–ด์ฃผ๊ณ ๋‚˜์„œ Spring์„ ๊ป๋‹ค ์ผœ์ฃผ๋ฉด!!

 

์ด๋ ‡๊ฒŒ welcomepage๊ฐ€ ๊ตฌ์ถ•์ด ๋˜์—ˆ๋‹ค. welcomepage๋Š” ์ •์  ํŽ˜์ด์ง€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†์„ ํ–ˆ์„๋•Œ

๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํŽ˜์ด์ง€์ด๋‹ค. 

 

๋‹ค์Œ์€ ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

 


 

์œ„ ์‚ฌ์ง„์—์„œ Hello Spring Link๋ผ๋Š” ๊ธ€์”จ๊ฐ€ aํƒœ๊ทธ๋กœ ๊ฐ์‹ธ์ ธ ์žˆ๋Š”๋ฐ ๊ธ€์”จ๋ฅผ ๋ˆ„๋ฅด๋ฉด /hello๋กœ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ

๋งŒ๋“ค์–ด๋ณด๊ฒ ๋‹ค.

 

1. ์ฒซ๋ฒˆ์งธ๋กœ๋Š” controller๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.

 - controller๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ• ๋•Œ ๊ฑฐ๊ธฐ์— ๋งž๋Š” ํŽ˜์ด์ง€๋ฅผ Mapping ์‹œ์ผœ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

2. controller๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๊ณ  HelloController class๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

package helloo.helloo_spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("hello") // get ์š”์ฒญ ์ฒ˜๋ฆฌ
    public String hello(Model model) { // model ๊ฐ์ฒด ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
        model.addAttribute("data", "hello!");
        // model ๊ฐ์ฒด์— data ์†์„ฑ ์ถ”๊ฐ€, ๊ทธ ๊ฐ’์„ hello! ์„ค์ •
        return "hello"; // ๋ทฐ์˜ ์ด๋ฆ„
        // ๋ทฐ ๋ฆฌ์กธ๋ฒ„๋ฅผ ํ†ตํ•ด์„œ ๋ทฐ ํŒŒ์ผ์„ ์ฐพ๊ณ  hello.html ๋ฐ˜ํ™˜
    }
}

 

 

3. templates ํด๋”์— hello.html ์ƒ์„ฑ

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>Hello</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'์•ˆ๋…•ํ•˜์„ธ์š”. ' + ${data}" ></p>
</body>
</html>

 

HelloController hello ๋ฉ”์„œ๋“œ์—์„œ data ์˜ ๊ฐ’์ด hello!๋กœ ์ง€์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 

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

 

์—ฌ๊ธฐ์„œ data ๊ฐ’์ด hello! ๊ฐ€ ๋˜๋Š”๊ฒƒ์ด๋‹ค.

 


 

์œ„ ๊ธ€์€ ๊น€์˜ํ•œ๋‹˜์˜ Spring ์ž…๋ฌธ ๊ฐ•์˜ ๋ฐ”ํƒ•์œผ๋กœ ๊ธ€์„ ์ผ์Šต๋‹ˆ๋‹ค!

๋ฐ˜์‘ํ˜•