1. 상황

타임리프로 이미지 슬라이드를 구현하려 함.

 

2. 문제

th:each를 사용하여 div박스를 image 데이터의 수 많큼 반복 생성되는데 active 코드가 모든 div에 들어가는 문제 발생

 

3. 해결방법

해당 문제는 프론트의 영역이라 판단하여 데이터를 제약 조건하에 프론트로 전달하여 고정 된 틀에 값을 입력하도록 수정

th:each를 사용하지 않고 코드 구현

카페 등록시 등록 가능 이미지를 3장으로 고정하여 해당 데이터를 사용할 때 데이터의 수가 변하지 않도록 처리하였다.

 

<div class="carousel-inner">
    <div class="carousel-item active">
        <img th:src="${cafeDetailResponseDto.getCafeImgUrls().get(0)}" class="d-block" style="width:100%">
    </div>
    <div th:if="${cafeDetailResponseDto.getCafeImgUrls().get(1)} != null" class="carousel-item">
        <img th:src="${cafeDetailResponseDto.getCafeImgUrls().get(1)}" class="d-block" style="width:100%">
    </div>
    <div th:if="${cafeDetailResponseDto.getCafeImgUrls().get(2)} != null" class="carousel-item">
        <img th:src="${cafeDetailResponseDto.getCafeImgUrls().get(2)}" class="d-block" style="width:100%">
    </div>
</div>

+ Recent posts