이번 포스팅은 체크박스로 체크한 데이터 들을
게시판 목록(리스트)에 하나하나 뿌려주기 위해서 고민했던 내용에 대해 적어 보려고 합니다.
카드형으로 리스트를 출력해 줘야 하는데
카드 안에 각 게시물의 체크박스 데이터를 아이콘으로 같이 출력해 주는 내용입니다.
우선 내용을 정리해 보면
처음에 조금 막막했었는데
하나씩 문제를 뜯어보고 나니 해결 방법이 보입니다.
Java(Controller) 에서의 처리
1. 리스트 읽어 오기
자 그럼 일단은 목록을 불러 와야 겠죠.
List<boardVO> boardList = boardService.getBoardList();
service 이하 부분은 생략하기로 합니다.
이 포스팅에서 중요한 이야기는 어떻게 데이터를 DB에서 읽어오느냐 하는 부분이 아니니까요.
2. 체크박스 데이터(문자열)를 배열로 전환하기
2-1. 체크박스 데이터를 배열로 변환
우선 전체 리스트에 접근하는 for 문을 만들어 봅니다.
for(boardVO item : boardList)
//체크박스 문자열을 배열로 저장
}
2-2. 체크리스트 안의 값을 배열로 저장 하기위해 배열을 하나 선언합니다.
그리고 선언한 배열에 체크리스트를 split를 이용해 배열을 만들어 저장합니다.
for(boardVO item : boardList) {
String[] checkList = item.getCheckList().split(",");
//체크리스트가 저장된 값(컬럼)을 CheckList로 받아오고 있습니다.
}
2-3 배열로 만든 값(checkList)을 다시 리스트의 요소에 담습니다.
item.setCheckValue(checkList);
3. 데이터를 뷰로 넘기기
model.addAttribute("boardList", boardList);
View 에서 데이터 출력하기
이제 뷰에서 화면에 데이터를 뿌려주는 일만 남았습니다.
이번에도 역시 차례대로 접근을 해봅니다.
리스트를 있는 그대로 일단 뿌려준다.
리스트의 각 데이터를 출력할때 체크리스트에 대해서는 반복문을 이용해 배열을 출력해 준다.
그럼 실제로 코딩을 해보겠습니다.
일단 보통의 리스트는 아래와 같이 하면 리스트가 출력이 되겠죠
<c:forEach items="${boardList}" var="item">
제목 : ${item.title}
내용 : ${item.content}
체크값 : ${item.checkValue}
</c:forEach>
그런데 이렇게 하면 체크값을 개별 처리 할 수 없습니다.
배열로 받아온 체크값들을 다시 한 번 for 문으로 처리를 해줍니다.
<c:forEach items="${item.checkValue}" var="value">
${value}
</c:forEach>
이렇게 하면 목록에 체크값들을 개별적으로 출력할 수 있습니다.
이렇게 개별적으로 체크값을 출력 하면, 그 값을 이용해 특정 이미지를 불러올 수 있도록 할 수도 있습니다.
<c:if test="$checkValue eq 'V'}> <img src="해당 아이콘"></c:if>
이런 식으로 말이지요
위의 코드들을 모두 한 번에 정리하면 아래와 같습니다.
<c:forEach items="${boardList}" var="item">
제목 : ${item.title}
내용 : ${item.content}
체크값 :
<c:forEach items="${item.checkValue}" var="value">
<c:if test="$checkValue eq 'V'}> <img src="해당 아이콘"></c:if>
</c:forEach>
</c:forEach>
응용은 여러분의 몫입니다.
물론 제가 생각한 이 방식이 최고일리 없다고 생각합니다.
더 나은 방법을 알려주시면 감사히 받도록 하겠습니다.
※ 포스팅 내용중에 설명이 잘못 되었거나, 보완이 필요한 부분이 있으면 지적해 주세요~
[JAVA/Spring] SQL 로그 출력하기 (1) | 2019.02.19 |
---|---|
[JAVA/Spring] MAC OS, STS 에서 lombok 설정하기 (0) | 2018.11.27 |
[Java/Spring] 설정파일 관리 (0) | 2018.10.29 |
[JAVA/Spring] maven 라이브러리 다운로드 경로 수정 방법 (0) | 2018.10.17 |
[JAVA/Spring] The import javax.annotation.Resource cannot be resolved (2) | 2018.10.03 |