요청 처리 후 페이지 이동 관련 질문 드립니다.

1,334 views
Skip to first unread message

codeS

unread,
Nov 16, 2010, 1:07:23 AM11/16/10
to Korea Spring User Group
상세수정 페이지에서 수정 후 상세페이지로 다시 페이지 이동 하기 전에
해당작업에 대한 alert 메시지를 뿌려주고 이동하게끔 하고 싶습니다.

부가적으로 새로고침과 페이지 뒤로이동 시 중복처리를 예방하려는 의도도 있습니다.

interceptor의 postHandle 이용하여 insert, update 등의 처리 후 뷰로 넘어가기전에 alert를 뿌려
주고
redirect하는 방식은 맞지 않는 것인지 궁금합니다.

위의 방식으로 가능하다면 아래와 같은 두가지 문제점이 있습니다.
1. interceptor를 사용하여 처리할 경우 적용범위를 지정하는 문제
2. alert 메시지 출력 후 redirect 시 앞단의 요청파라마터들을 가져갈때의 문제
(요청파라미터를 폼으로 전송하는 방법 이외에 심플한 방법이 있는지 궁금합니다.)


보통 위와 같은 두가지를 어떠한 방식으로 처리하시는지 궁금합니다.

바쁘시겠지만 지도 좀 부탁드리겠습니다.

감사합니다.

파란하늘

unread,
Nov 16, 2010, 1:29:57 AM11/16/10
to ks...@googlegroups.com, Korea Spring User Group

관점이... insert와 update를 하는 처리부분은 페이지 display와 별개의 부분이 아닌지요?


만약 그런 경우라면 ajax로 해당 작업을 요청 후

리턴받은 결과에 따라 

요청 작업을 진행한 페이지에서 alert처리 및 redirect처리를 하는 방식이

파라메터 전송이나 요청 결과 처리에 대해 좀더 수월하지 않을까 싶습니다.


두서없이 함 답변을 써보았네요;;;


 

--------- 원본 메일 ---------
보낸이: codeS <lena...@naver.com>
날짜: 2010년 11월 16일 화요일, 15시 07분 23초 +0900
제목: 요청 처리 후 페이지 이동 관련 질문 드립니다.
받는이: Korea Spring User Group <ks...@googlegroups.com>
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
그룹에서 탈퇴하려면 ksug+unsub...@googlegroups.com로 이메일을 보내주세요.
더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.









Sewon Ann

unread,
Nov 16, 2010, 1:43:03 AM11/16/10
to ks...@googlegroups.com
codeS 님이 말씀하신 두 가지 문제점의 내용을 정확하게 파악하지 못했는데, 일단 작업 결과 alert 표시 방법은 다음 3개가 있을 듯 합니다.

1. ajax 처리 후 결과 alert 를 표시한 다음 화면 전환 (파란하늘님 커멘트의 방식이지요?)
 ex) 수정화면 -> 수정화면 ajax 호출 -> 상세화면
2. 폼 submit -> alert 페이지 표시 후 그 페이지에서 화면 전환 -> 상세조회 페이지
 ex) 수정화면 -> alert 화면 -> 상세화면
3. 폼 submit -> 상세조회 페이지 표시 후 해당 페이지에서 alert 표시
 ex) 수정화면 -> 상세화면 -> 상세화면에서 alert

예전엔 2번의 경우도 많이 본 듯 한데, 중간에 텅 빈 하얀 화면에 alert 창만 떡하니 떠서 입력을 기다리는 모양이지요. 그래서 상당히 안이쁘고, 아마 브라우저 뒤로 가기를 누르면 다시 한번 alert 뜨고 상세화면으로 이동할 거에요. 안이쁘지요.

3번의 경우 back 버튼은  수정화면으로 잘 이동할 듯 한데, f5 누를 때 마다 alert 가 뜨지 싶습니다.

그래서 ajax 사용 가능한 경우라면 좀 손품이 들더라도 1번이 제일 이쁘고, 그게 어렵다면 3번 형태가 좋지 않을까 싶어요. 2번은 너무 안이뻐서 나쁘고.

원래 말씀하셨던 postHandle 은 어떤 방식으로 사용하시지요? alert 를 띄워주려면 일단 브라우저로 결과를 보내야할텐데 이 page 자체를 postHandle에서 처리한다는 말씀이신가요? 그러면 어떻게든 구현을 할 때 2번 형태가 되지 싶은데 너무 안이쁠 것 같습니다. 제가 제대로 이해했는지 모르겠네요.


2010/11/16 파란하늘 <luve...@hanmail.net>
그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.

Jae myung Park

unread,
Nov 16, 2010, 2:15:04 AM11/16/10
to ks...@googlegroups.com
저도 메세지 처리를 한 경험이 있는데 1번 방식으로 처리를 했던적이 있는데 젤 깔끔하고 나은듯 합니다~~ 

아니면 뷰페이지에서 메세지 보여주는것도 괜찮을 듯 합니다..    

2010년 11월 16일 오후 3:43, Sewon Ann <kin...@gmail.com>님의 말:

codeS

unread,
Nov 16, 2010, 3:07:54 AM11/16/10
to Korea Spring User Group
답변 감사드립니다.
현재 플로우는 Sewon Ann 님이 말씀하신 3번의 경우입니다.
이것을 2번과 같은 방식으로 수정하고 싶어서 질문을 드렸던 거구요^^
글로 표현하는게 미숙했는데 잘 정리해주셔서 감사합니다.

현재 3번 방식의 경우인데 수정 후 새로고침을 하게 되면 update를 돌게 됩니다. 그리곤 상세화면의 alert가 뜹니다.
(forward)

따라서 redirect를 사용하여야하는데 이 경우 상세화면에 나타날 메세지와 상세화면의 pk를 달고 다녀야하는데 더 나은 방법
이 없는지 궁금합니다.

back 버튼의 경우도 막아주고 싶은데 방법이 없을까요?

Sewon Ann

unread,
Nov 16, 2010, 4:09:50 AM11/16/10
to ks...@googlegroups.com
3번 방식에서 새로 고침을 하면 update를 다시 하나요? 이 부분이 약간 이해가 가지 않아요.

edit.jsp -> (submit) -> saveController -> (forward) -> viewController -> view.jsp 

이런 형태가 될 텐데, view.jsp 에서 새로 고침을 해 보았자 viewController 가 다시 도는게 아닌가요?
전 이렇게 생각했습니다.

Contoller.save(  )
{
     service.save();
     forward( "/view.do?flag=success" );
}

Contoller.view( )
{
    service.get();
    return view;
}

view.jsp 
<script>
 if(flag == sucess) alert('저장에 성공했습니다~');
</script>

이런 모양으로 구현하신 게 아닌가보네용.

2010/11/16 codeS <lena...@naver.com>
Reply all
Reply to author
Forward
0 new messages