작성자 없음
작성자 정보가 삭제된 글입니다.
해결된 질문
작성
·
342
·
수정됨
2
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)네
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
네
[질문 내용]
여기에 질문 내용을 남겨주세요.
@ModelAttribute("regions")
public Map<String, String> regions() {
Map<String, String> regions = new LinkedHashMap<>();
regions.put("SEOUL", "서울");
regions.put("BUSAN", "부산");
regions.put("JEJU", "제주");
return regions;
}
<div>
<div>등록 지역</div>
<div th:each="region : ${regions}" class="form-check form-check-inline">
<input type="checkbox" th:field="${item.regions}" th:value="${region.key}" class="form-check-input" disabled>
<label th:for="${#ids.prev('regions')}"
th:text="${region.value}" class="form-check-label">서울</label>
</div>
</div>
여기에서
th:each="region : ${regions}"
th:value="${region.key}"
th:text="${region.value}"
너무 어려워서 체크박스만 어제 오늘 계속 붙들고 다시보고 있는데요 이제 저 3개만 알면 이해갈거같은데 전력을 다해 검색해봐도 도저히 저 3개를 모르겠어요
each 에 ${regions} 는 맵인거 같은데 region 은 무슨타입이 들어가길래 key value 라는 값을 쓸수 있는건가요?
답변 1
2
안녕하세요. C베로님, 공식 서포터즈 OMG입니다.
간단한 Map에 대한 예시를 설명드리면,
Map<사물함번호, 사물함주인> 사물함;
이 있을 때
사물함 번호가 key이고, 사물함 주인이 value입니다.
이 때 사물함 번호(key)는 고유하고 사물함 주인(value)은 중복 될 수 있습니다.
위에서 설명드린 예시가 Map의 특징을 현실에 대입한 것이고 강의 예시의 region.key, region.value도 마찬가지로 생각하시면 됩니다.
그리고 타임리프에서 map에 대한 key, value가 예약어로써 Map타입의 데이터 처리를 지원한다고 보시면 됩니다.
each 에 ${regions} 는 Map데이터(강의 예시로 <SEOUL, 서울>, <BUSAN, 부산>, <JEJU, 제주>) 전체를 각각 순회하는 코드입니다.
추가로 아래 링크도 같이 참고해주세요.
https://amagrammer91.tistory.com/33
감사합니다.
만약 제 설명과 링크를 참고하더라도 이해가 잘 안되신다면 제 설명이 부족했을 수도 있지만 자바 컬랙션 Map에 대한 개념이 정립이 안되었을 수도 있을 것 같아요.
Map에 대해서도 별도로 학습하신 후 다시 보시면 이해되실거라 생각합니다.