gvf1562969
@gvf1562969
Reviews Written
3
Average Rating
5.0
Posts
Q&A
org.thymeleaf.spring5.processor.SpringInputCheckboxFieldTagProcessor ์๋ฌ ์ง๋ฌธ
์๋ ํ์ธ์. ์ฐ์ ์ง๋ฌธ์ ๋ํด ์ ์ฑ์ค๋ฐ ๋ต๋ณ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.!! ํ์ฌ ๋ต๋ณํด์ฃผ์ ๋ด์ฉ์ ์คํํ๊ณ ์ดํดํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ถ๊ธํ ์ ์ด ์๊ฒผ์ต๋๋ค. ์ฒ์ ๋ต๋ณ์์ ์ ์ฅ๋ item์ regions(๋๋ฉ์ธ์ List๋ก ์ ์ธ)์ ๋ฐ๋ณต๋ฌธ์ ํตํด ๊บผ๋ด๋ฉด์ ๋ชจ๋ธ๋ก ๋ฑ๋ก๋ regions์ ๋น๊ตํ๋ฉด์ ์ถ๋ ฅ์ ํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ด ์๋์ ์ฝ๋๋ ์ดํด๊ฐ ๋ฌ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ items.html๊ฐ ์๋ item.html, editForm.html์ ๋ณด๋ฉด ์ ๊ฐ ์ฒ์ ์ง๋ฌธ์ ์ ๋ก๋ํ ์ฝ๋์ ๊ฐ์ด ๋ชจ๋ธ 'regions'๋ฅผ for๋ฌธ์ ํตํด ๋ณ๋์ ๋ฐ๋ณต๋ฌธ(th:each)์์ด item์ regions๋ฅผ ํ์ธ ํ๋ค๋ ์ ์์ ์๋ฌธ์ด ์๊ฒผ์ต๋๋ค. ๋ค๋ฅธ ๊ณณ์์๋ ๋ต๋ณ๊ณผ ๊ฐ์ด item.regions์ ํ์ธ ํ๋๋ฐ th:each๊ฐ ํ์์๋๋๋ฐ items.html์์๋ ์ ํ์ํ ๊ฒ ์ผ๊น์? ์ง๋ฌธ ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
- 2
- 5
- 791
Q&A
org.thymeleaf.spring5.processor.SpringInputCheckboxFieldTagProcessor ์๋ฌ ์ง๋ฌธ
์๋ ํ์ธ์. ๋ต๋ณ์ ํ์ธํ๊ณ ๊ฐ์๋ด์ฉ์ ๋ค์ ๋ณต์ตํด๋ณด์์ต๋๋ค. th:field์ ํน์ฑ์ ์ธ์๋ก ์ ๋ ฅ๋ ๊ฐ์ฒด์ ๋ํด id, name, value ์์ฑ์ ์๋์ผ๋ก ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์ดํดํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฅผ๋ค์ด, th:field=${itemName}"๊ฐ id="itemName" name"itemName", value="itemA" ๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ํด๋น ์์ ์ปดํฌ๋ํธ์ object ๊ฐ ์ ์ธ๋๋ฉด *{itemName}์ผ๋ก ๊ฐ์ํ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๋ฌธ์์ ์ธ๊ธ๋๋ ธ๋ ๊ฒ์ฒ๋ผ ๋ฉํฐ ์ฒดํฌ๋ฐ์คํธ์ ์๊ฐํ๋ฉด์ @ModelAttribute์ ๋ถ์ ๋ฉ์๋๋ ์ปจํธ๋กค๋ฌ์์๋ ๋ฉ์๋๋ค์ด ์คํ๋ ๋๋ง๋ค ํด๋น ์ด๋ ธํ ์ด์ ์ด ๋ถ์ ๋ฉ์๋๋ก ๋ถํฐ ๋ฐํ๋ ๋ชจ๋ธ๋ค์ด ์์ฑ๋๋ค๋ ๊ฒ์ผ๋ก ์ดํดํ์ต๋๋ค. ๊ทธ๋ฌ๋ค item list๋ฅผ ์กฐํํ๋ ํ์ด์ง์ธ item.html์์๋ '๋ฑ๋ก ์ง์ญ'์ ๋ํ ๋ชจ๋ธ๋ค์ด ์์ฑ์ด ๋ ๊ฒ์ด๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ด๊ณ ์ ํ์์ต๋๋ค. ๊ทธ๋์ ์์ดํ ์ ํ๊ทธ ๋ฐ๋ณต๋ฌธ์ ํตํด list๋ก์จ ์ ์ฅ๋์ด์๋ ๋ชจ๋ธ items์์ item ๊ฐ์ฒด๋ฅผ ํ๋์ฉ ๋ฐ๊ณ ์ด ๊ฐ์ฒด๋ฅผ ํตํด regions์ ๋ฐ์์ค๋ ค๊ณ ์๋๋ฅผ ํ์ต๋๋ค. ํด๋น ๊ฐ์ฒด๋ th:object๋ก์จ ์ ์ธ๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ th:field="*{regions}"๊ฐ ์๋ th:field="${item.regions}"๋ก ์ ์ธํ์๊ณ div ํ๊ทธ์ ์์ฑ๋ th:each="region :${regions}"๋ฅผ ํตํด @ModelAttribute์ ์ํด ์์ฑ๋ ๋ชจ๋ธ๋ก ๋ถํฐ ๋ฅผ region์ผ๋ก ๋ฐ์์ th:field="${item.regions}"์ ๊ฐ๊ณผ ๋งค์นญ์ํด์ ์ฒดํฌํ๊ฑฐ๋ ์ฒดํฌ๋ฅผ ์ํ๋๋ก ํ์ํ๋ ๋ก์ง์ ์ดํดํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๊ทธ๋ ๋์ ์ผ๋ก ์์ฑ๋ ์ปดํฌ๋ํธ์ ๋ํด ์์ด๋๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํ ๋ก์ง์ผ๋ก ์ดํด ํ์ต๋๋ค. ์๋ ํด๋น ์์ ์ฝ๋๋ item.quantity ์ฆ ์์ดํ ์ ์๋๊น์ง๋ง ๋ํ๋ด๊ณ ์ ํ๋๋ฐ ์ ๊ฐ ๊ทธ ๋ฐ์ ์ถ๊ฐ๋ฅผ ํ๋ฉด์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๊ฐ ์ดํดํ ๋ด์ฉ์ด ์ด๋๊ฐ ๋ถ์กฑํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค..... th:each="item : ${items}"> href="item.html" th:href="@{/form/items/{itemId} (itemId=${item.id})}" th:text="${item.id}">ํ์id href="item.html" th:href="@{|/form/items/${item.id}|}" th:text="${item.itemName}">์ํ๋ช th:text="${item.price}">10000 th:text="${item.quantity}">10 th:each="region : ${regions}" class="form-check form-check-inline"> type="checkbox" th:field="${item.regions}" th:value="${region.key}" class="form-check-input" disabled> th:for="${#ids.prev('regions')}" th:text="${region.value}" class="form-check-label">์์ธ
- 2
- 5
- 791




