Controller에서 Controller를 호출할 때 @ModelAttribute를 사용하고 싶습니다.
- 작성자 :
- 송*현
- 작성일 :
- 2010-09-02 11:25:38
- 조회수 :
- 3,836
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
@RequestMapping(value="/logn/actionLogin.do")
public String actionLogin(@ModelAttribute("loginVO") LoginVO loginVO,
HttpServletRequest request,
ModelMap model)
throws Exception {
=================
위 소스는 기존 로그인 controller로 화면에서 폼값으로 아이디와 비밀번호를 입력받으면 자동으로 LoginVO에 필드들이 매핑이 되어 처리가 되고 있습니니다.
그런데 추가적으로 다른 방식의 로그인 로직이 필요해서 별도의 컨트롤러(A_C)에서 위 /logn/actionLogin.do 컨트롤러를 호출해서 로그인을 처리해야 하는데요.
위 메소드를 그대로 사용하고 @ModelAttribute("loginVO") LoginVO loginVO에 A_C 에서 넘겨주는 LoginVO의 값들을 자동으로 매핑해 주고 싶습니다.
A_C 컨트롤러에서 model.addAttribute("loginVO", loginVO);
처리를 해주고 return "/logn/actionLogin.do" 을 하게 되면 자동으로
@ModelAttribute("loginVO") LoginVO loginVO에 매핑이 되나요? 아니면 어떤방식으로 처리를 해야 하는지 문의 드립니다.
public String actionLogin(@ModelAttribute("loginVO") LoginVO loginVO,
HttpServletRequest request,
ModelMap model)
throws Exception {
=================
위 소스는 기존 로그인 controller로 화면에서 폼값으로 아이디와 비밀번호를 입력받으면 자동으로 LoginVO에 필드들이 매핑이 되어 처리가 되고 있습니니다.
그런데 추가적으로 다른 방식의 로그인 로직이 필요해서 별도의 컨트롤러(A_C)에서 위 /logn/actionLogin.do 컨트롤러를 호출해서 로그인을 처리해야 하는데요.
위 메소드를 그대로 사용하고 @ModelAttribute("loginVO") LoginVO loginVO에 A_C 에서 넘겨주는 LoginVO의 값들을 자동으로 매핑해 주고 싶습니다.
A_C 컨트롤러에서 model.addAttribute("loginVO", loginVO);
처리를 해주고 return "/logn/actionLogin.do" 을 하게 되면 자동으로
@ModelAttribute("loginVO") LoginVO loginVO에 매핑이 되나요? 아니면 어떤방식으로 처리를 해야 하는지 문의 드립니다.
A
안녕하세요.. 송두현님..
하나의 Controller 호출 후 다른 Controller를 호출하시려는 경우는 직접 클래스 단위로 호출하시는 것이 아니라..
다음과 같이 return을 통해 호출하실 수 있습니다.
이 경우 request 객체 정보가 그대로 유지되기 때문에 파라미터 매핑이나 @ModelAttribute 등이 처리가 됩니다.
return "forward:/logn/actionLogin.do";
그럼.. 즐거운 하루되십시오.
감사합니다.
하나의 Controller 호출 후 다른 Controller를 호출하시려는 경우는 직접 클래스 단위로 호출하시는 것이 아니라..
다음과 같이 return을 통해 호출하실 수 있습니다.
이 경우 request 객체 정보가 그대로 유지되기 때문에 파라미터 매핑이나 @ModelAttribute 등이 처리가 됩니다.
return "forward:/logn/actionLogin.do";
그럼.. 즐거운 하루되십시오.
감사합니다.