@Controller ์ @GetMapping์ ์ด์ฉํด์ htmlํ์ผ ๋์ฐ๊ธฐ
์คํ๋ง๋ถํธ๋ static ํด๋์ index.html
ํ์ผ์ ์์ฑํ๋ฉด, index.html
ํ์ผ์ ์ด๊ธฐ ํ๋ฉด์ผ๋ก ๋์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ index.html
ํ์ผ์ <body>
๋ถ๋ถ์
<a href = "/randomname">Click</a>
๋ฅผ ์
๋ ฅํด์ฃผ๊ณ (randomname ๋ถ๋ถ์๋ ์ํ๋ ์ด๋ฆ์ ๋ฃ๋๋ค.)
, ์น์๋ฒ๋ฅผ ์์ํ๊ณ localhost์ ๋ค์ด๊ฐ๋ณด๋ฉด,
Click์ด๋ผ๋ ํ์ดํผ๋งํฌ๊ฐ ์์ฑ๋๊ณ ํด๋ฆญํ๋ฉด
http://localhost:8080/randomname ์ผ๋ก ์ด๋ํ๊ฒ ๋๋ค.
ํ์ง๋ง, ์์ง ์์ฑํด ๋์๊ฒ ์๊ธฐ ๋๋ฌธ์, error page๊ฐ ๋์จ๋ค.
๋จผ์ templates
ํด๋์ randomname.html
ํ์ผ์ ๋ง๋ ๋ค.
body ๋ถ๋ถ์ This is randomname html
์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์์ฑํ์๋ค.
์ด์ ์ด randomname.html
ํ์ผ์ ๋์์ฃผ๊ธฐ ์ํด Controller
๋ผ๋ ๊ฒ์ ๋ง๋ค์ด์ผ ํ๋ค.
java ํด๋์ MakeController
๋ผ๋ javaํ์ผ์ ์์ฑํ๋ค.
@Controller
์๋ํ
์ด์
์ ๊ผญ ํด์ฃผ์ด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ
@GetMapping("randomname")
์ ํด์ฃผ์ด์ผ randomname
๋ฉ์๋๋ฅผ ์คํ์์ผ์ค๋ค.
์ฌ์ค GetMapping()
๊ธฐ์ค์ผ๋ก ๋ฉ์๋๊ฐ ์คํ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๋ฉ์๋์ ์ด๋ฆ์ ๊ผญ randomname
์ด ์๋์ฌ๋ ๋๋ค.
๋์ return ๊ฐ์ ๊ผญ ์ฐ๊ฒฐํ htmlํ์ผ๋ช ์ผ๋ก ํด์ผํ๋ค.
randomname ๋ฉ์๋์ ๋ด์ฉ์ โrandomnameโ ์ ๋ฐํํ๋ ๊ฐ๋จํ ์ฝ๋๋ฅผ ์์ฑํ์๋ค.
randomname ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์, randomname ์ด๋ผ๋ ์ด๋ฆ์ html ํ์ผ์ด ์๋ ํ์ธ์ ํด๋ณด๊ณ ์๋ค๋ฉด html ํ์ผ์ ๋ถ๋ฌ์ค๊ฒ ๋๋ ๊ฒ์ด๋ค.
์๋ฒ๋ฅผ ๋ค์ ์์ํ๊ณ Click์ ๋๋ฌ์ฃผ๋ฉด
์ด์ ๊ฐ์ด, randomname.html
body ๋ถ๋ถ์ ์
๋ ฅํ๋ ๋ฌธ๊ตฌ๊ฐ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ ๋ฆฌ
Click๋ฅผ ์ฌ์ฉํ๋, url ์ ์ ๋ ฅํด์ localhost:8080/์ํ๋์ด๋ฆ ์ผ๋ก ๋ค์ด๊ฐ๋, htmlํ์ผ์ ๋์ฐ๊ณ ์ถ๋ค๋ฉด ๋จผ์ , resource/templates ํด๋์ [html์ด๋ฆ].html ํ์ผ์ ์์ฑํ๋ค. ์ฐธ๊ณ ๋ก ์ํ๋์ด๋ฆ์ GetMapping์ผ๋ก ๋ฃ์ ์ธ์์ ๋์ผํด์ผ ์์คํ ์ด ์บ์นํ ์ ์๋ค. ์ฆ, GetMapping(โ์ํ๋์ด๋ฆโ) ๊ณผ ๋์ผํด์ผ ์บ์นํ ์ ์๋ค.
html ํ์ผ์ ์์ฑํ๋ค๋ฉด, ์ด๋ฅผ ์ฐ๊ฒฐ์์ผ์ค Controller ์๋ฐ ํ์ผ์ ์์ฑํ๋ค.
@Controller ์๋ํ ์ด์ ์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
@GetMapping(โ์ํ๋์ด๋ฆโ) ์ ์์ฑํ๊ณ return ๊ฐ์ผ๋ก โ[html์ด๋ฆ]โ ์ ๋ฐํํ๋ค.
[html์ด๋ฆ]์ด ๋ฐํ๋๋ฉด์, resource/templates ํด๋์์ html์ ์ฐพ๊ณ , ์์ฑํด๋, [html์ด๋ฆ].html ์ด ๋์์ง๋ค.
โป templates ํด๋์ ๊ผญ ์ ์ฅ์ ํด์ฃผ์ด์ผ controller๊ฐ ์ฐพ์ ์ ์๋ค. ๋ง์ฝ static ํด๋์ htmlํ์ผ์ ์ ์ฅํ๋ค๋ฉด, Controller๊ฐ ์๋ index.html์์ ์ฐธ์กฐ๋ฅผ ๋ก ํด์ฃผ๋ฉด ๋ฐ๋ก ์ด๋ํ ์ ์๋ค. ํ์ง๋ง static ํด๋์ ์ ์ฅํ html์ ์ปจํธ๋กค๋ฌ๋ก ์ฐ๊ฒฐ์์ผ์ค ์ ์๋ค.