인프런 커뮤니티 질문&답변

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

체크 박스 - 멀티

checkbox 진행과정 질문입니다.

작성

·

265

·

수정됨

0

먼저 사용자가 서울을 체크하면

item의 private List<String> regions; 에 SEOUL 이 저장이됩니다.

<div>
    <div>등록 지역</div>
    <div th:each="region : ${regions}" class="form-check form-check-inline">
        <input type="checkbox" th:field="*{regions}" th:value="${region.key}"
               class="form-check-input">
        <label th:for="${#ids.prev('regions')}"
               th:text="${region.value}" class="form-check-label">서울</label>
    </div>
</div>

그 다음 th:field="*{regions}" 에 SEOUL이 들어가게 되고,

th:value="${region.key}" 에 있는 SEOUL, BUSAN, JEJU와 일치하는 지 비교합니다.

만약 있다면 checked = "checked" 를 합니다.

 

위와 같은 흐름이 맞는 지 궁금합니다.

답변 주시면 정말 감사하겠습니다.

답변 1

0

안녕하세요, 코딩먹는하마 님! 공식 서포터즈 codesweaver 입니다.

우선 사용자가 체크박스를 체크하는 행위는 백엔드에 당장 영향을 주지 않습니다. '상품등록'버튼을 눌러 폼 내용을 서버에 전송하는 행위가 발생할 때, 클라이언트-서버 상호간 통신이 발생합니다.

그러니 사용자가 서울을 체크하고 상품등록을 눌렀을 때 체크박스의 값인 SEOUL이 Item 인스턴스의 private List<String> regions; 에 할당됩니다. 그리고 나머지 프로세스를 따른 후 다시 상품 상세 화면으로 리다이렉트 됩니다. 그러면 Item 아이디에 해당하는 상품정보를 조회, 이를 뷰에 할당합니다.

그러면 뷰 파일(타임리프를 적용한 HTML 파일)에서 ${regions} 이와 같은 형태로 List<String> regions 값에 접근할 수 있습니다.

감사합니다.

코딩먹는하마님의 프로필 이미지
코딩먹는하마

작성한 질문수

질문하기