방명록
- 0118 deleteDev 추가2024년 01월 18일 19시 37분 23초에 업로드 된 글입니다.작성자: 삶은고구마
간만에 하는 과제인 것 같다.
js 공부를 소홀히 해서 자꾸 뱅뱅 도는 기분.....파이널 하기전에 확실하게 복습하기로.
야매방식인 것 같은데 일단 성공했으니 기록용으로 업로드함. ㅠㅜ
1.기존 devUpdateForm.jsp에 삭제 버튼도 추가.
수정버튼은 submit type이고 추가된 삭제버튼은 button type이다.
<button type="submit" class="list-group-item list-group-item-action">dev 수정</button> <input type="text" class="form-control" id="id" name="id" value="${dev.id}" hidden> <input type="text" class="form-control" id="path" name="path" value="${pageContext.request.contextPath}" hidden> <button type="button" id="deleteBtn" class="list-group-item list-group-item-action" >dev 삭제</button>
2.js
삭제 하기 전 confirm 창을 띄워서 정말 삭제하겠냐고 한 번 더 묻고,
!result 즉, false(아니오,취소등 선택)면 return 시키고
예,확인 등을 누른다면 삭제를 진행한다..
수정때 사용했던 devUpdateFrm을 이용해서 action을 바꿔주었다..
action:
<form> 태그의 action 속성은 폼 데이터(form data)를 서버로 보낼 때 해당 데이터가 도착할 URL을 명시합니다.
document.querySelector("#deleteBtn").addEventListener("click",(e)=>{ let result = confirm('정말로 삭제하시겠습니까?'); if (!result) return; console.log("삭제버튼클릭..gggg"); const path = document.querySelector("#path").value; //form const frm = document.querySelector('[name="devUpdateFrm"]'); frm.method="post"; frm.action=path+"/dev/deleteDev.do"; frm.submit(); });
3.controller
버튼 href속성을 사용하면 get 방식으로 전달되기 때문에 @PostMapping 에 접근할 수 없다.
선택한 id를 가지고 deleteDev를 진행한 후 devList로 리다이렉트한다.
@PostMapping("/deleteDev.do") public String deleteDev(@RequestParam("id") Long id,Model model,RedirectAttributes redirectAttributes) { System.out.println("deleteDev로 들어왔다!@선택한 아이디:"+id); //1.업무 로직.. int result = devService.deleteDev(id); System.out.println("delete 결과:"+result); //2.dml(update)후 redirect 처리 redirectAttributes.addAttribute("msg","dev삭제에 성공했습니다."); return "redirect:/dev/devList.do"; }
4. service,repository,mapper.xml
public int deleteDev(Long id) { return devRepository.deleteDev(id); } ------------------------------------------------------- public int deleteDev(Long id) { return sqlSessionTemplate.delete("com.sh.app.dev.repository.DevRepository.deleteDev",id); } ------------------------------------------------------- <delete id="deleteDev"> delete from dev where id=#{id} </delete>
+
hidden deleteDevFrm을 만들어서 용도에 맞게 나누는게 좋을 것 같다.
다음글이 없습니다.이전글이 없습니다.댓글