Class 컨트롤러에서 밸리데이션 오류시 리다이렉트 (리턴값)
- 작성자 :
- 임*재
- 작성일 :
- 2011-05-02 14:17:30
- 조회수 :
- 2,646
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요
다름아닌 하나 질문이 있어서 글을 올려봅니다.
회원정보 나 등등 수정 및 등록을 할때.
수정이라고 예를들때 수정 컨트롤러를 실행하다
bindingResult.hasErrors() 체크로 인해 에러가 애ㅣㅆ으면
return "cmm/uss/umt/EgovUserSelectUpdt
이런씩으로 리턴을 보내주자나요 ~ 그외 도 권한등으로 인한 리턴이 많지요
수정을 하다 안되서 리턴을 이루어지면 위에 내용은 그냥 jsp로 리턴이기때문에
select 등 코드 같은 Db내용을 가져 오지 못하게 되어있드라고요~~! 그래서 redirect나 forword로 해주려고해도 받았던 파라미터를 다시 그대로 보내줘야되니 잘안되더군요 ㅜㅜ
좋은 방법좀 부탁드리겠습니다 흑..~!
다름아닌 하나 질문이 있어서 글을 올려봅니다.
회원정보 나 등등 수정 및 등록을 할때.
수정이라고 예를들때 수정 컨트롤러를 실행하다
bindingResult.hasErrors() 체크로 인해 에러가 애ㅣㅆ으면
return "cmm/uss/umt/EgovUserSelectUpdt
이런씩으로 리턴을 보내주자나요 ~ 그외 도 권한등으로 인한 리턴이 많지요
수정을 하다 안되서 리턴을 이루어지면 위에 내용은 그냥 jsp로 리턴이기때문에
select 등 코드 같은 Db내용을 가져 오지 못하게 되어있드라고요~~! 그래서 redirect나 forword로 해주려고해도 받았던 파라미터를 다시 그대로 보내줘야되니 잘안되더군요 ㅜㅜ
좋은 방법좀 부탁드리겠습니다 흑..~!
A
안녕하세요.. 임희재님..
"forward:"의 경우는 request나 model 정보를 보존하기 때문에 다시 수정페이지로 forward가 되면.. select의 전체 데이터가 사용자가 수정한 데이터(request)가 보존되도록 되어 있습니다.
(select 등의 데이터의 경우는 수정화면의 *.do에서 모델에 담아진다고 가정하면..)
"redirect:"의 경우는 client로부터 새로운 URL을 다시 호출하도록 하기 때문에 별도의 request가 발생하는 것으로.. 이전 파라미터 등의 정보가 남지 않습니다.
내부적으로 일반 JSP 호출도 forward 방식으로 호출되기 때문에 "forward:"를 사용하셔도 됩니다.
다만, 이때에는 수정페이지를 다시 들어가기 때문에.. DB로 부터 다시 정보를 가져오는 것이 일반적입니다.
이 경우는 원래 입력했던 값들이 DB로부터 다시 가져온 값으로 대체되기 때문에
입력한 값이 보존되지 않습니다..
따라서 일반적은 경우는 JSP를 리턴하고..
그 전에 select 데이터를 얻어와 모델에 넣어주시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
"forward:"의 경우는 request나 model 정보를 보존하기 때문에 다시 수정페이지로 forward가 되면.. select의 전체 데이터가 사용자가 수정한 데이터(request)가 보존되도록 되어 있습니다.
(select 등의 데이터의 경우는 수정화면의 *.do에서 모델에 담아진다고 가정하면..)
"redirect:"의 경우는 client로부터 새로운 URL을 다시 호출하도록 하기 때문에 별도의 request가 발생하는 것으로.. 이전 파라미터 등의 정보가 남지 않습니다.
내부적으로 일반 JSP 호출도 forward 방식으로 호출되기 때문에 "forward:"를 사용하셔도 됩니다.
다만, 이때에는 수정페이지를 다시 들어가기 때문에.. DB로 부터 다시 정보를 가져오는 것이 일반적입니다.
이 경우는 원래 입력했던 값들이 DB로부터 다시 가져온 값으로 대체되기 때문에
입력한 값이 보존되지 않습니다..
따라서 일반적은 경우는 JSP를 리턴하고..
그 전에 select 데이터를 얻어와 모델에 넣어주시면 됩니다.
그럼.. 즐거운 하루되십시오.
감사합니다.