른록노트
[Spring] 전자정부프레임워크 double submit 처리하기 (3.10) 본문
1. 문제점
전자정부프레임워크에 sample 코드를 보고 그대로 실행을 하고
글을 저장하는 부분에서 버튼을 광클하게되면 데이터가 여러번 저장되게된다.
이러한 내용에 대하여 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