ajaxForm을 사용하여 글을 등록 후 서버에서 사용자에러시 다시 원화면으로 돌아가는데 document.ready부분이 호출
- 작성자 :
- 이*돈
- 작성일 :
- 2014-12-30 16:37:55
- 조회수 :
- 884
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요
ajaxForm(ajax로 파일등록을위해)을 사용하여 글을 등록할때 서버에서 사용자에러시 model.addAttribe("resultMsg", resultMsg) 이렇게 에러 메시지 담아서 다시 원화면으로 돌아가는데 document.ready 함수가 호출이 안되어서 에러메시지나 document ready시 해야할 처리를 못하고 있어요. 에러시 에러메시지도 호출하고 다시 화면으로 돌아오면 default로 처리도 해야 되는데 어떻게 해야 될까요?
$(document).ready(function(){
<c:if test="${!empty resultMsg}">
alert("${resultMsg}")
</c:if>
그 외에 document.ready시 처리되는 로직
});
-- 글 등록버튼 클릭시 처리
function fn_regist_notice(){
$("#board").ajaxForm({
success: function(data){
$("#rightSide").empty().append(data).show(); // tiles를 적용하여 바디부분의 div명이 rightSide입니다.
},
error: function(e){
alert("에러발생");
}
});
$("#board").submit();
}
ajaxForm(ajax로 파일등록을위해)을 사용하여 글을 등록할때 서버에서 사용자에러시 model.addAttribe("resultMsg", resultMsg) 이렇게 에러 메시지 담아서 다시 원화면으로 돌아가는데 document.ready 함수가 호출이 안되어서 에러메시지나 document ready시 해야할 처리를 못하고 있어요. 에러시 에러메시지도 호출하고 다시 화면으로 돌아오면 default로 처리도 해야 되는데 어떻게 해야 될까요?
$(document).ready(function(){
<c:if test="${!empty resultMsg}">
alert("${resultMsg}")
</c:if>
그 외에 document.ready시 처리되는 로직
});
-- 글 등록버튼 클릭시 처리
function fn_regist_notice(){
$("#board").ajaxForm({
success: function(data){
$("#rightSide").empty().append(data).show(); // tiles를 적용하여 바디부분의 div명이 rightSide입니다.
},
error: function(e){
alert("에러발생");
}
});
$("#board").submit();
}
A
안녕하세요. 표준프레임워크 센터입니다.
쓰신 ajaxForm은 jQuery에서 제공하는 것이 아닌 어디선가 제공하는 plugin으로 보입니다.
확인을 해보니 ajaxForm의 내부 속성도 jQuery의 ajax()함수 속성과 동일하게 쓸수있다고 API에 쓰여져있네요.
일반적인으로 서버에서 error라고 인식한다면 쓰셨던 error 콜백함수를 이용해서
exception message를 뿌려줄 수 있을 것 같습니다.
(http://api.jquery.com/jquery.ajax/ 참고)
하지만 이 경우에는 정상적으로 response에 담기는 model을 호출하기는 어려울 것 같습니다.
Controller상에서 넘기는 에러메시지를 화면에서 받으시려면
try{
} catch(Exception ex) {
model.addAttribe("resultMsg", resultMsg) ;
}
위처럼 상위에 exception을 던지는게 아니라 exception을 잡아서 정상동작처럼 작동하도록 해주셔야할 듯 합니다.
위와같이 처리해주신다면
화면상에서는 써주신 success콜백함수에
$("#board").ajaxForm({
success: function(data){
//생략
if(data.resultMsg != null) alert(data.resultMsg);
}
});
이처럼 써주실 수 있겠죠.
도움이 되셨으면 좋겠네요.
감사합니다.
쓰신 ajaxForm은 jQuery에서 제공하는 것이 아닌 어디선가 제공하는 plugin으로 보입니다.
확인을 해보니 ajaxForm의 내부 속성도 jQuery의 ajax()함수 속성과 동일하게 쓸수있다고 API에 쓰여져있네요.
일반적인으로 서버에서 error라고 인식한다면 쓰셨던 error 콜백함수를 이용해서
exception message를 뿌려줄 수 있을 것 같습니다.
(http://api.jquery.com/jquery.ajax/ 참고)
하지만 이 경우에는 정상적으로 response에 담기는 model을 호출하기는 어려울 것 같습니다.
Controller상에서 넘기는 에러메시지를 화면에서 받으시려면
try{
} catch(Exception ex) {
model.addAttribe("resultMsg", resultMsg) ;
}
위처럼 상위에 exception을 던지는게 아니라 exception을 잡아서 정상동작처럼 작동하도록 해주셔야할 듯 합니다.
위와같이 처리해주신다면
화면상에서는 써주신 success콜백함수에
$("#board").ajaxForm({
success: function(data){
//생략
if(data.resultMsg != null) alert(data.resultMsg);
}
});
이처럼 써주실 수 있겠죠.
도움이 되셨으면 좋겠네요.
감사합니다.