BACK-END/Spring

[Spring] 컨트롤러에서 컨트롤러로 값이동

단비_danbee 2020. 12. 28. 16:48

 

 

목표 :

회원가입 후 자동으로 로그인 된 후 메인화면으로 이동하기

 

처음에는 회원가입 컨트롤러 > 로그인 컨트롤러 > 메인화면 순으로 값을 전달하려했으나

회원가입 컨트롤러에서 Session 값 설정 > 메인화면으로 바로 보내면 된다는것을 깨달음


[1] 실패 케이스

//4] 회원가입을 완료 했다면 login 컨트롤러로 이동해서 로그인하기
String val = "boardWriter="+dto.getBoardWriter()+"&boardWriterPW="+dto.getBoardWriterPw();
return "redirect:/loginCheck.do?"+val;

 

[2] 실패 케이스

//4] 회원가입을 완료 했다면 login 컨트롤러로 이동해서 로그인하기
request.setAttribute("boardWriter", dto.getBoardWriter());
request.setAttribute("boardWriterPW", dto.getBoardWriterPw());	
return "redirect:/loginCheck.do";

 

[3] 실패 케이스

리턴값을 지우고 void 함수로 만든 후 loginController 함수를 호출했다.

회원가입 직후인데도 로그인 함수에서는 존재하지 않는 아이디로 인식한다.

//4] 회원가입을 완료 했다면 login 컨트롤러로 이동해서 로그인하기
request.setAttribute("boardWriter", dto.getBoardWriter());
request.setAttribute("boardWriterPW", dto.getBoardWriterPw());
		
loginCheck(dto, fileRequest, response);
		
//return "redirect:/loginCheck.do";

 

[1] 성공

-리턴값을 ModelAndView로 설정

-세션객체 생성 후 아이디값을 삽입해주고

-setViewName에 메인 화면을 적어줬더니

-로그인 후 메인화면 이동까지 성공했다.

//4] 회원가입을 완료 했다면 main으로 이동하기
HttpSession session = request.getSession();
session.setAttribute("userId", boardWriter); // 세션값 설정
		
ModelAndView MAV = new ModelAndView();
MAV.setViewName("redirect:/");
		
return MAV;