728x90

<body>
<!-- th:fragment="์ด๋ฆ" ์ผ๋ก ๊ณตํต ํ๊ทธ๋ถ๋ถ ์์ฑ -->
<div
th:fragment="formErrors"
class="alert alert-danger"
role="alert"
th:if="${#fields.hasAnyErrors()}"
>
<div th:each="err : ${#fields.allErrors()}" th:text="${err}" />
</div>
</body>
question_form.html, question_detail.html ์ ์๋ฌ ํผ ๋ณ๊ฒฝ
<div th:replace="layout::formErrors"></div>
ํ ์คํธํด๋ณด๊ธฐ


๋ค๋น๊ฒ์ด์ ๋ชจ๋ํ

<nav
th:fragment="nav"
class="navbar navbar-expand-md navbar-light bg-light border-bottom"
>
<div class="container-fluid">
<a class="navbar-brand" href="/">SBB</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="#">๋ก๊ทธ์ธ</a>
</li>
</ul>
</div>
</div>
</nav>
๋ชจ๋ ํ์ด์ง์ ์ถ๊ฐ
<nav th:replace="layout::nav"></nav>

ํ์ง๋ง ํ๋ฉด์ด ์์์ก์ ๋ ์ค๋ฅธ์ชฝ ์ ํ ๊ธ ๋ฒํผ์ด ๋๋ฌ์ง์ง ์์ -> js๊ฐ ์์ด์ ๊ทธ๋ผ

์๊น ๋ค์ด๋ก๋ ๋ฐ์ ๋ถํธ์คํธ๋ฉ ํด๋์์
ํด๋น ํ์ผ์ ๋ฃ์ด์ค



head์ ์ถ๊ฐ
<!-- Bootstrap JS -->
<script th:src="@{/bootstrap.bundle.min.js}"></script>
ํ ์คํธํ๊ธฐ - ํ ๊ธ ๋ฒํผ ๋๋ฅด๋ฉด ๋ด๋ ค์ค๋์ง

728x90
'BACKEND > SpringBoot' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ฒ์๋ฌผ์ ์ผ๋ จ๋ฒํธ ์ถ๊ฐํ๊ธฐ (1) | 2023.11.09 |
|---|---|
| ํ์ด์ง (0) | 2023.11.09 |
| ๋ต๋ณ(Answer) ์ ํจ์ฑ ๊ฒ์ฌ ์ถ๊ฐ (0) | 2023.11.09 |
| ์ง๋ฌธ ๋ฑ๋ก ์ฒ๋ฆฌ ๋ฐ ์ ํจ์ฑ๊ฒ์ฌ (5) | 2023.11.09 |
| ๋ถ๋ถ ๋ชจ๋ํ ( th:fragment / th:replace ) (0) | 2023.11.09 |