본문 바로가기

spring boot

JPA / spring boot 게시글 수정

/edit url로 GET 요청함

name이 id인 현재 id 값을 전달

 

 

 

1. RequestParam("id") : 인풋 네임이 id인 값을 받음

2. 받아온 id를 서비스단의 editItem() 메소드로 전달하고 result 변수에 담음

3. editItem() : 받아온 id 값에 해당하는 데이터 반환

4. result가 null이 아니면 프론트단에 데이터 전달 

 

 

(뷰단 바인딩 완료)

 

5. 기본 값을 서버에서 전달받은 데이터로 세팅하고 required로 값이 빈 채 넘어가는 것을 방지

6. 버튼을 클릭시 /editItemInfo 경로로 POST 요청

 

 

7. @ModelAttribute Item 으로 받아온 데이터들을 Item 타입으로 받아옴

8. 만약 받아온 데이터가 null이 아니면 url을 vo의 id경로로 설정하고 editItemInfo() 메소드로 넘김

9. 해당 id 값을 가진 db 데이터를 가져옴

10. 또한 가져온 정보가 null이 아니면 해당 오브젝트에 가져온 데이터들 set

11. save()로 저장

 

.save() 는 기존의 id와 받아온 id가 겹친다면 해당 데이터를 update를 해줌

 

document.addEventListener('DOMContentLoaded', function() {

        alert('edit page');

        let editBtn = document.querySelector('#editBtn');
        let inputs = document.querySelectorAll('#frm input');
        let isChanged = false;

        editBtn.addEventListener('click', function() {
            let confirmEdit = confirm('수정하시겠습니까?');

            if(confirmEdit) {
                isChanged = false;

                inputs.forEach(function(input) {
                
                    let originTitleVal = input.defaultValue;
                    let currentVal = input.value;

                    if(currentVal == originVal) {
                        isChanged = false;
                    }
                });
                if(!isChanged) {
                    alert('값이 변경되지 않았습니다.');
                    return false;
                }else {
                    document.frm.submit();
                }
            }

        });

    });

 

자바스크립트 수정할 때 값 변경없이 넘길 때의 유효성 검사 (미완)