Server๐Ÿงค/JPA

[SpringBoot๊ณผ JPA ํ™œ์šฉ1] Viewํ™˜๊ฒฝ์„ค์ •, Thymeleaf์†Œ๊ฐœ, ์„œ๋ฒ„์žฌ์‹œ์ž‘ ์—†์ด ๋ทฐํŒŒ์ผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•

yujindonut 2022. 8. 8. 18:12
728x90

Template Engines ์—์„œ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ์Œ (JSP์™€ Tymeleaf )

Spring์—์„œ๋Š” Tymeleaf๋ฅผ ๋ฐ€๊ณ ์žˆ๋‹ค! 

 

- Natural templates

์žฅ์  : ๋งˆํฌ์—…์„ ๊นจ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ƒฅ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ”๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.

๋‹จ์  : ํƒœ๊ทธ๋ฅผ ๋‹ซ์•„์ฃผ๋Š” ์‹์œผ๋กœ ์“ฐ์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. <br></br> (๊ทน๋ณต๋จ), ์„ฑ๋Šฅ๋„ ๊ฐœ์„ ๋จ.

 


thymeleaf ๋Š” ์ž๋™์œผ๋กœ viewName์„ ๋งคํ•‘ํ•ด์ค€๋‹ค

@Controller
  public class HelloController {
      @GetMapping("hello")
      public String hello(Model model) {
          model.addAttribute("data", "hello!!");
          return "hello";
      }
}
<!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>

์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋ฐ”๋กœ localhost:8080/helloํ•˜๋ฉด ์ž๋™์œผ๋กœ hello.html๋กœ ๊ฐ„๋‹ค


build.gradle์— 

implementation 'org.springframework.boot:spring-boot-devtools'

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด, htmlํŒŒ์ผ์„ ์ปดํŒŒ์ผ๋งŒ ํ•ด์ฃผ๋ฉด ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ํ•„์š” ์—†์ด view ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!

728x90