반응형
<form>
<table class="table table-striped">
<tr>
<th scope="col">저장 목록</th>
</tr>
<tr th:each="m :${viewCarDTOList}">
<td th:text="${m.checkCollectionName}"></td>
</tr>
</table>
</form>
View에서는 데이터를 가져와서 뿌려주는 작업만 한다.
나중에 추가하면 클릭해서 상세 보는 것도 추가해야 하지만 일단은 이렇다.
public interface ICheckMapper {
// 완료 항목 보기
List<ViewCarDTO> viewCheck() throws Exception;
}
인터페이스에서 정의해주고 오버라이딩해서 사용한다.
@Override
public List<ViewCarDTO> viewCheck() throws Exception {
List<ViewCarDTO> viewCarDTOList = new LinkedList<>();
for (String colNm : mongo.getCollectionNames()) {
if (colNm == null) {
colNm = new String();
}
if (colNm.length() > 5) {
ViewCarDTO viewCarDTO = new ViewCarDTO();
viewCarDTO.setCheckCollectionName(colNm);
viewCarDTOList.add(viewCarDTO);
}
}
return viewCarDTOList;
}
List로 사용하고 MongoDB의 CollectionName을 가져와서 길이가 5이상인 컬렉션만 담아주었다. 다른 좋은 방법이 있을 수도 있는데 데이터 베이스에서 간단하게 길이 5이상 데이터만 필요했기 때문에 저렇게 넣어줬다.
그 다음은 DTO에 담고 리스트에 저장하고 리턴했다.
public interface ICheckService {
// 완료 항목 보여주기
List<ViewCarDTO> viewCheck() throws Exception;
}
인터페이스를 정의한다.
@Override
public List<ViewCarDTO> viewCheck() throws Exception {
List<ViewCarDTO> viewCarDTOList = null;
viewCarDTOList = iCheckMapper.viewCheck();
if (viewCarDTOList == null) {
viewCarDTOList = new LinkedList<>();
}
return viewCarDTOList;
}
null 처리 간단하게 해주고 Mapper에서 가져온 값을 Controller로 넘겨준다.
// 완료 항목 보기
@GetMapping("/viewCheck")
public String viewCheck(Model model) throws Exception {
List<ViewCarDTO> viewCarDTOList = iCheckService.viewCheck();
model.addAttribute(viewCarDTOList);
return "carCheck/viewCheck";
}
컨트롤러에서 Model 객체를 생성해주고 그 안에 담아 View로 넘겨준다. 그럼 맨 위에 View에서 thymeleaf의 each문을 통해 반복해서 list가 출력된다.
반응형
'Project > 소경관' 카테고리의 다른 글
[소경관] : ocr 기능 완성과 몇 가지 문제 체크 (0) | 2022.05.30 |
---|---|
[소경관] : 이미지 인식 처리하기 (0) | 2022.05.28 |
[소경관] : 프로젝트 중간 발표 및 MongoDB Collection 명 중 특정 Collection만 가져오기와 그 이후 진행 예정 (0) | 2022.05.26 |
[소경관] : 등록한 차량 및 주민 정보 수정과 삭제 로직 구현하기 (0) | 2022.05.25 |
[소경관] : 차량 번호판 인식 로직 고민 (0) | 2022.05.24 |
댓글