- 요청명령어 등록
<bean class="com.board.controller.UpdateController" />
흐름
- UpdateController->BoardDao->update()선언
- BoardDaoImpl
- 1)BoardDaoImpl X
- 2)BoardMapper.xml X
- 글수정, 글삭제
- 글삭제의 경우에는 매개변수가 있을 수 있다.
- 글수정하기
- 글삭제하기
🎨글수정을 구현하기위한 설계
- 서로 요청명령어가 다른 경우->하나의 컨트롤러에서 작업=>Get or Post방식X
- 1)글수정폼으로 이동 ->/board/update.do
- 2)글수정폼에서 수정한 데이터를 입력하고 수정버튼누른 경우->/board/updatePro.do
- 요청명령어를 같게 설정->Get,Post방식으로 구분해서 작업
- 1)글수정폼으로 이동 ->/board/update.do(같은 명령어 일때에는 GET)->접속
- 2)글수정폼에서 수정한 데이터를 입력하고 수정버튼누른 경우->/board/update.do(POST)
- => @GetMapping or @PostMapping 활용
- 스프링
- tiles을 사용 O
- tiles을 사용 X
- dispatcher-servlet.xml에서 viewResolver=>prefix, suffix 설정
- resource폴더에서 외부의 파일을 불러오도록 설정->css,js,bootstrap
로그객체
1. 글수정 폼으로 이동(Get방식) -> 반환값(ModelAndView) <-> (단순페이지 String)
2. 입력해서 유효성검사 -> 에러발생
- BindingResult -> 유효성 검사때문에 필요(에러정보 객체를 저장)
- 변경전의 데이터를 불러오기 -> board(비밀번호)==웹상에서의 입력 비밀번호확인
비밀번호체크(DB상의 암호!=웹상의 입력한 암호)
- 비밀번호가 일치한다면
- 기본파일명 ->
- 업로드된 파일이 존재 -> 기존 파일 삭제 -> 새로운 파일명 세팅
- 업로드된 파일이 존재X -> 기존파일은 그대로 덮어서 저장
- 비밀번호 틀리면
글수정할때 이미 코딩함
🎁dispatcher-servlet.xml
- 요청명령어 등록
<bean class="com.board.controller.DeleteController"/>
🎁BoardDao
- 글 삭제하기
public void delete(Integer seq);
🎁BoardDaoImpl
<delete id="deleteBoard" parameterType="Integer"> delete from springboard2 where seq=#{seq} </delete>
🎁boardDelete.jsp
- 암호를 입력을 받을 수있도록 암호를 물어보는 입력창
🎁tilesdef.xml
- delete()->암호를 물어본다 ->
- /board/list.do(/bordList.jsp로 이동)
로그객체
1. 글삭제 폼으로 이동(Get방식) (단순페이지 String)
2. 에러메세지 출력 -> 다시 초기화가 가능하게 설정 -> @ModelAttribute("커맨드객체 별칭")
🎁BoardDeleteValidator.java 추가
3. 입력해서 유효성검사 -> 에러발생
- 암호 입력후 삭제(파일까지 삭제)
- 암호 입력 실패