-
PJT 2. TO-DO LIST 구현 하기 (4일차)기타/프로젝트 2021. 6. 15. 15:36
오늘은 어제 목표로 한 TODO 등록을 눌렀을 때 접속하는 웹 페이지를 구현했다.
먼저, TODO등록을 눌렀을 때 등록 페이지 구현을 했다.
어려운 부분을 없었지만 강의시간에 배우지 못한 form태그에 대해 알게 되었다.
form 태그의 속성으로 POST, GET등으로 지정한 위치로 데이터를 보낼 수 있다.
사실 등록 페이지를 구현하기 전 가장 문제로 될 부분이 POST방식으로 servlet에 보내는 것이였는데 form태그의 속성값만 주면 간단하게 해결되서 다행이였다.
form태그에 대한 공부는 아래의 블로그를 통해 했다.
https://velog.io/@choiiis/HTMLCSS-form-%ED%83%9C%EA%B7%B8-%EC%A0%95%EB%A6%AC
이제 완성한 등록페이지에서 제출버튼을 눌러 값이 제대로 가는지 확인했다.
값은 이상없이 갔지만 문제가 발생했다.
기획서의 요구사항은 TODO 등록날짜 최신순으로 TODO목록을 위에서 아래로 쌓는 것이였다.
하지만 동일한 날짜이지만 등록한 시간이 달랐을 때(등록 페이지에서는 등록날짜를 주지않아도 데이터베이스에서 자동으로 현재날짜, 시간으로 값이 들어가게 해놨다.)에 main페이지에서 순서가 아래의 동영상처럼 이상하게 나왔다.
원래는 휴식하기가 공부하기보다 등록날짜가 더 최신이므로 휴식하기, 공부하기, 잠자기, 몰라 순으로 출력됐어야 했다.
왜 그럴까 고민을 하던 중, sql문에 문제가 있다는 것을 깨달았다.
나는 등록날짜에 YYYY-MM-DD형식으로 출력하기 위해 sql문을
select id, title, name, sequence, type, date_format(regdate, '%Y-%m-%d') as regdate from todo order by regdate desc;
이렇게 짰다.
하지만, sql문을 저렇게 짜면 출력이 YYYY-MM-DD형식에서 regdate가 내림차순으로 정렬되고 그 후, regdate가 같다면 id값이 오름차순으로 정렬되서 나오는 것이다.
그래서, 그냥 평범하게 date_format없이 regdate를 받아온 후, 메서드 내에서 받아온 regdate를 substring으로
앞부분(YYYY-MM-DD)만 저장하는 방식을 택했다.
이렇게 메서드를 수정한 후, 새로운 TODO를 등록하보니까 원하던 순서대로 출력되었다.
그후, 등록버튼을 누르면 리다이렉트로 main페이지에 가도록 구현했다.
'기타 > 프로젝트' 카테고리의 다른 글
PJT 2. TO-DO LIST 구현 하기 (5일차, 완성) (0) 2021.06.16 PJT 2. TO-DO LIST 구현 하기 (3일차) (0) 2021.06.14 PJT 2. TO-DO LIST 구현 하기 (2일차) (1) 2021.06.13 PJT 2. TO-DO LIST 구현 하기 (1일차) (0) 2021.06.10 PJT 1. 나를 소개하는 홈페이지 만들기 (2일차, 완성) (2) 2021.06.01