른록노트

[Spring] 전자정부프레임워크 double submit 처리하기 (3.10) 본문

Web/[Spring]

[Spring] 전자정부프레임워크 double submit 처리하기 (3.10)

른록 2021. 12. 22. 15:57

1. 문제점

전자정부프레임워크에 sample 코드를 보고 그대로 실행을 하고
글을 저장하는 부분에서 버튼을 광클하게되면 데이터가 여러번 저장되게된다.

이러한 내용에 대하여 double-submit 관련 기능을 제공하고 있는데
문서에서 환경설정 부분이 제대로 나와 있지 않아서 전자정부프레임워크가 지원하는 기능은 사용하지 않고
클라이언트단에서만 처리하기로 하였다.

[전자정부 double-submit]

2. 해결방법

javascript의 변수를 이용해서 한번만 클릭할 수 있도록 만들었다.
공통으로 사용하는 javascript 파일에 아래 소스를 추가하였다.

var doubleSubmitFlag = false;
function doubleSubmitCheck() {
    if (!doubleSubmitFlag) {
        doubleSubmitFlag = true;
        return false;
    } else {
        return true;
    }
}

그리고 각 페이지별 submit을 하는 소스에 아래 코드를 추가하였다.

function go_save() {
    if(doubleSubmitCheck()){    // +추가
        return;                    // +추가
    }                            // +추가
     frm = document.detailForm;
     if(!validateSearchVO(frm)){
             doubleSubmitFlag = false;    // +추가
            return;
        }else{
            frm.action = "<c:url value="${registerFlag == 'create' ? '/test/testInsert.do' : '/test/testUpdate.do'}"/>";
            frm.submit();
      }
}
반응형
Comments