개인프로젝트 CRUD

이동원·2024년 7월 15일

쇼핑몰 상품 목록 페이지 - 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에 있던 행 삭제.

쇼핑몰이면 관리자 유저만 접속가능해야함

0개의 댓글