기록
  • 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을 만들어서 용도에 맞게 나누는게 좋을 것 같다.

    '공부 > 과제' 카테고리의 다른 글

    1025 과제  (0) 2023.10.26
    댓글