쇼핑몰 상품 목록 페이지 - product/list 접속 하면 상품 목록 페이지 보내 주기 미션
- 똑같은 페이지 만 보이면 안됌 ->서버/DB 있는 데이터를 HTML 로 넣을 수 있어야함 -> (타임 리프 이용해)
-> how? Model 파라 미터 추가 -> templates 에서 사용법: th:text="${작명}"
- 컨트롤러 model.addattribute 만으로 직접 데이터 넣지않고 데이터베이스 가져온뒤 출력하기 ->상품정보 저장위해 Entity 만들기
- jpa로 데이터 입출력방법 1.리포지토리생성 2. db입출력 원하는 클래스에 리포지토리등록 3.repository.입출력문법() 쓰기 ex).findAll 쓰면 List 자료형에 담기
- 디자인 넣기 static 파일에 css넣고 templates - body 부분에 class 넣어주고 , head 부분에 link 테그로 연결
- th:each="작명 : ${데이터}" 쓰면 html 쉽게 복붙가능
상품 추가 할 수있는 페이지 랑 기능 만들기
- cf) 코드부터 짜지말고 한글로 기능이 어떻게 동작하는지 자세히 적고 시작하자(자세히 설명)
- 1.상품정보 작성할 수있은 페이지 와 폼보여주기(get) 2. 전송버튼 누르면 서버로 보냄(post) 3. 서버에서 검사한후 별일없으면 DB에저장
- input 테그는 name 속성이 있어야 서버로 전송 잘된다
cf) 컨트롤 행복사 컨트롤+d
- navbar 만들기 ->재사용 위해 별도 파일에 빼고 th:fragment="작명" 추가후 쓰고싶은 파일에 아무 테그 안에 th:replace="~{파일경로 :: 작명}"
상품마다 상세페이지 만들고 제목누르면 상세페이지 이동 구현
- url 파라미터 지정 {id} ,findById 는 Optional 써야함 ->.get() 을해야 데이터가 나온다. ->없을수도있으니 if 문
- @PathVariable 을 하면 유저가 url 파라 미터에 입력한 값 알 수있다.
- 타임리프 설치 한 경우 error.html 만들어주면 에러발생시 자동으로 보내줌
함수 하나에는 한가지 기능만 담는걸 권장
- 컨트롤러는 데이터 , html 보내는 역할 , 나머지 (DB입출력 ,이것저것 검사하는건) service로 빼자
수정기능
- 1.수정버튼 누르면 글수정페이지 2. 기존 내용 채워진 폼이있다. 3.전송 누르면 db 수정
삭제기능
- 1.상품마다 삭제버튼 만들기 2.누르면 서버에 요철하고 3db에 있던 행 삭제.
쇼핑몰이면 관리자 유저만 접속가능해야함