[μ€νλ§ MVC] - 16. Thymeleaf νμ리ν μ¬μ©λ² λ° λ¬Έλ²
μ μ μΈ html μ λμ html λ‘ λ°κΏλ³΄μ
νμ리νλ μμ HTML νμΌμ μΉ λΈλΌμ°μ μμ μ΄μ΄λ λ΄μ©μ νμΈν μ μκ³ ,
μλ²λ₯Ό ν΅ν΄ λ·° ν νλ¦Ώμ κ±°μΉλ©΄ λμ μΌλ‘ λ³κ²½λ κ²°κ³Όλ₯Ό νμΈν μ μλ€.
μμ HTMLμ κ·Έλλ‘ μ μ§νλ©΄μ λ·° ν νλ¦Ώλ μ¬μ©ν μ μλ νμ리νμ νΉμ§μ λ€μΈλ΄ ν νλ¦Ώ
νμ리ν κ°λ¨ν μμ보기
νμ리ν μ¬μ© μ μΈ
<html xmlns:th="http://www.thymeleaf.org">
μμ± λ³κ²½ - th:href
<link th:href="@{/css/bootstrap.min.css}"
href="../css/bootstrap.min.css" rel="stylesheet">
λ·° ν
νλ¦Ώμ κ±°μΉλ©΄ th:href μ κ°μ΄ href λ‘ λ체λλ©΄μ λμ μΌλ‘ λ³κ²½ν μ μλ€.
λλΆλΆμ HTML μμ±μ th:xxx λ‘ λ³κ²½ν μ μλ€.
μν λͺ©λ‘ νμ΄μ§

μν λ±λ‘ λ²νΌ html
<button class="btn btn-primary float-end"
onclick="location.href='addForm.html'" type="button">μν λ±λ‘</button>

μμ± λ³κ²½ - th:onclick
onclick="location.href='addForm.html'"
th:onclick="|location.href='@{/basic/items/add}'|"
리ν°λ΄ λ체 - |...|
κ·Έλ₯ μ¬μ©νλ©΄ λ¬Έμμ ννμμ κ°κ° λ°λ‘ λν΄μ μ¬μ©ν΄μΌ νλ―λ‘ λ€μκ³Ό κ°μ΄ 볡μ‘ν΄μ§λ€
th:onclick="'location.href=' + '\'' + @{/basic/items/add} + '\''"
리ν°λ΄ λ체 λ¬Έλ²μ μ¬μ©νλ©΄, λνκΈ° μμ΄ νΈλ¦¬νκ² μ¬μ©ν μ μλ€.
th:onclick="|location.href='@{/basic/items/add}'|"
μν λ±λ‘ νΌμΌλ‘ μ΄λ

λ°λ³΅ μΆλ ₯ - th:each
<tr th:each="item : ${items}">
λͺ¨λΈμ μλ items λ₯Ό κΊΌλ΄μ item μ λ£μ΄μ€
item λ³μμ νλμ© ν¬ν¨λκ³ , λ°λ³΅λ¬Έ μμμ item λ³μλ₯Ό μ¬μ©ν μ μλ€.
λ³μ ννμ - ${...}
<td th:text="${item.price}">10000</td>
λͺ¨λΈμ ν¬ν¨λ κ°μ΄λ, νμ리ν λ³μλ‘ μ μΈν κ°μ μ‘°νν μ μλ€.
νλ‘νΌν° μ κ·Όλ²μ μ¬μ©νλ€. ( item.getPrice() )
λ΄μ© λ³κ²½ - th:text
<td th:text="${item.price}">10000</td>
λ΄μ©μ κ°μ th:text μ κ°μΌλ‘ λ³κ²½νλ€.
μ¬κΈ°μλ 10000μ ${item.price} μ κ°μΌλ‘ λ³κ²½νλ€.
URL λ§ν¬ ννμ2 - @{...}
th:href="@{|/basic/items/${item.id}|}"
URL λ§ν¬ ννμμ μ¬μ©νλ©΄ κ²½λ‘λ₯Ό ν
νλ¦Ώμ²λΌ νΈλ¦¬νκ² μ¬μ©ν μ μλ€.
κ²½λ‘ λ³μ( {itemId} ) λΏλ§ μλλΌ μΏΌλ¦¬ νλΌλ―Έν°λ μμ±νλ€.
μ)
th:href="@{/basic/items/{itemId}(itemId=${item.id}, query='test')}"
μμ± λ§ν¬: http://localhost:8080/basic/items/1?query=test
th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|"
th:onclick="|location.href='@{|/basic/items/${item.id}/edit|}'|"
λ§ν¬ννμμ μμλ 리ν°λ΄ νκΈ°λ₯Ό μΆκ°ν΄μ£Όμ΄μΌ ν©λλ€.
μ¦, th:onclick, location.href κ°κ°μ 리ν°λ΄ νκΈ°κ° νμν©λλ€.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
μ€νλ§ MVC 1νΈ - λ°±μλ μΉ κ°λ° ν΅μ¬ κΈ°μ - μΈνλ° | κ°μ
μΉ μ ν리μΌμ΄μ μ κ°λ°ν λ νμν λͺ¨λ μΉ κΈ°μ μ κΈ°μ΄λΆν° μ΄ν΄νκ³ , μμ±ν μ μμ΅λλ€. μ€νλ§ MVCμ ν΅μ¬ μ리μ ꡬ쑰λ₯Ό μ΄ν΄νκ³ , λ κΉμ΄μλ λ°±μλ κ°λ°μλ‘ μ±μ₯ν μ μμ΅λλ€., -
www.inflearn.com