PROJECT (6) 썸네일형 리스트형 Martin's Bookshelf_Part 7 : BOOK CRUD(Update) 가장 작업량이 많고 까다로운 Update 과정이다. 한 번 심호흡을 크게 하고 시작해본다. JSP 파일에서 Update 버튼에 대한 JS function을 추가한다. 수정 Form에 DB에 있는 row를 불러와야하기 때문에 b_idx를 Controller로 보내준다. Controller에서 전송 받은 파라미터를 활용 → 해당 b_idx의 row를 vo에 할당 → Model에 속성을 추가한 다음 수정 Form인 book_modify_form을 호출한다. book_modify_form.jsp에서 전달 받은 Model에서 정보를 추출하여 수정 form에 채워 넣는다. 수정 form은 입력 form과 대동소이 하기 때문에 book_insert_form.jsp를 복사해서 사용한다. 각 항목 HTML 태그의 val.. Martin's Bookshelf_Part 6 : BOOK CRUD(Delete) Delete 기능 구현 작업 순서 Delete 버튼에 JS function 코딩( b_idx 파라미터를 활용하여 삭제 ) Controller 에서 JSP에서 전송받은 parameter(b_idx)를 활용하여 delete.do 코딩 b_idx를 활용해 DB에서 해당 row를 불러온다 해당 row의 파일의 절대경로 파악 -> 업로드 된 파일을 저장하는 폴더에서 해당 데이터 삭제 DB에서 해당 row 삭제 DAO에서 조건별 탐색 & 삭제 method 코딩 → Mapper에서 SQL문 작성 더보기 function del(b_idx) { if (confirm("Are you sure?")==false) return; location.href ="delete.do?b_idx="+b_idx; } Martin's Bookshelf_Part 5 : BOOK CRUD(Create) book_list.jsp 페이지에서 CRUD 작업을 수행할 수 있게 하는 로그인/아웃 기능을 구현했다. 이제 새로운 책을 추가하는 기능을 구현할 순서이다. JSP 파일에 새로운 책 정보를 등록하기 전 로그인 여부를 확인 하는 JS function 추가 BookController에 새로운 책 책 정보를 입력할 Form을 띄우는 리퀘스트 코딩(insert_form.do) book_insert_form.jsp 작업 파일 업로드를 위해 Post로 Method 설정 새로운 책 정보 입력 Form 구성 신규 정보 등록 / 취소(메인 페이지로 돌아가기) 기능 버튼 구현 신규 정보 등록 이전 파일 첨부 여부를 확인하는 JS function BookController 에서 insert.do 리퀘스트 코딩 (상세작업은 첨.. Martin's Bookshelf_Part 4 : list.jsp / Login&out [ ⅰ: book_list.jsp ] MVC 모델의 틀은 갖추었으니 기본적인 작동이 잘 되는지 확인하기 위해 우선 메인 페이지가 될 book_list.jsp의 프론트엔드 작업을 진행한다. 전반적인 틀을 테이블 형식으로 갖추고 DB에서 데이터를 잘 받아오는 지 확인한다. 그리고 로그인 여부에 따른 버튼 출현 등의 기능도 미리 구현해 놓는다. 더보기 :::Martin's Bookshelf::: Welcome back ${ user.m_name }! No Book Available ${ vo.b_category } 제목 : ${ vo.b_title } 출간일 : ${ fn:substring(vo.b_published,0,10) } Detail 부제 : ${ vo.b_subtitle } 출판사 : ${ vo.b.. Martin's Bookshelf_Part 2 : ERD & Database MVC 모델의 기반이 될 ERD 작업을 시작한다. 작업을 하는 PC에 erwin을 설치하였지만 평가판이 만료되어 수기로 ERD를 진행했다. 책의 기본적인 정보와 사진을 리스트로 확인할 수 있는 페이지를 만든 것이 우선의 계획이다. 나중에 게시판의 기능을 활용하여 각 책의 초록을 기록하는 기능을 추가적으로 구현할 예정이다.(아마 Bulletin 테이블을 추가해서 기존 테이블을 참조하는 방식으로..?) 따라서 우선의 계획을 따른 ERD로 SQL을 활용하여 테이블을 만든다. Book 테이블은 Member 테이블에서 외래키를 참조해야 하기 때문에 Member 테이블을 우선적으로 작업한다. [ ⅰ: MEMBER Table SQL ] 로그인 기능 구현과 주소 찾기 API 활용을 위한 테이블을 작성하기 위한 SQL문.. Martin's Bookshelf_Part 1 : Project Preset [ Stepⅰ: Preset 적용 ] 프로젝트를 본격적으로 시작하기 앞서 학원 수업에서 배웠던 Spring DB Preset 진행한다. 이 Spring DB Preset을 설명하자면 이렇다. src/main/resources에 수업시간 동안 진행했던 db의 프로퍼티, MyBatis의 매퍼 세팅 등이 적용된 소스들로 구성되어 있다. 특히 config.spring.context에는 xml 파일들이 세부적으로 나뉘어져 있는데, 나중에 빈 인젝션 작업을 할 때 순차적으로 구분해주는 역할을 해주어 초보자들이 개발하는데 혼란을 덜어준다. web.xml에는 UTF-8 encoding Filter와 *.do 형식으로 호출하는 classpath가 설정되어 있다. pom.xml에는 게시판 형식을 구현하게 해주는 라이브러리.. 이전 1 다음