@RequestMapping
- url을 클래스 또는 메소드와 맵핑시켜주는 역할을 한다.
- Annotation을 쓰지 않을때 지정했던 Controller 등록을 위한 url bean 설정을 생략할 수 있다.
- class에 하나의 url 맵핑을 할 경우, 클래스 위에 @RequestMapping("/url")을 지정하며,
GET 또는 POST 방식 등의 옵션을 줄 수 있다.
- 해당되는 메소드가 실행된 후, return 페이지가 따로 정의되어 있지 않으면
@RequestMapping("/url")에서 설정된 url로 다시 돌아간다.
- 메소드별로 url 맵핑을 할 경우는 메소드 위에 @RequestMapping("/url")로 지정한다.
- return 페이지가 지정되지 않은 경우 원래의 맵핑되었던 url로 돌아간다.
- return type을 String으로 하여 redirect:url또는 forward:url을 사용하여 다른 페이지로
넘길 수 있다.
--------------------------------------------------------------------------------
@Controller
public class LoginController {
@Autowired
private LoginService loginService;
@Autowired
private SampleService sampleService;
/**
* 사용자로 부터 아이디, 패스워드를 입력받아 인증 성공이면 세션 객체에 계정정보를 담고 사원정보리스트 페이지로 포워딩한다. 인증에
* 실패하면 로그인 페이지로 다시 리턴한다.
*/
@RequestMapping("/loginProcess.do")
public String login(HttpServletRequest request, @RequestParam("id") String id,
@RequestParam("password") String password) {
// TODO [Step 4-1-01]
// LoginService의 authenticate메소드를 이용하여 로긴여부 체크 Account 객체를 리턴 받는다.
Account account = (Account) loginService.authenticate(id, password);
/*
* TODO [Step 4-1-03]
* 가져온 account 객체가 null 아닌 경우
* request.getSession() 메소드를 통해 Session을 구해 UserAccount 이름으로 Session 에
* Attribute로 저장한다. 그리고 "redirect:/loginSuccess.do" 값을 반환한다. null 인경우
* "login" 반환한다.
*/
if (account != null) {
request.getSession().setAttribute("UserAccount", account);
return "redirect:/loginSuccess.do";
} else {
return "login";
}
}
// TODO [Step 4-1-04]
// loginSuccess.do 로 호출된 처리(@RequestMapping(value="/loginSuccess.do", method=RequestMethod.GET) 를 위한
// 메소드(loginSuccess) 를 void 타입의 public 메소드를 만들어라.
@RequestMapping(value = "/loginSuccess.do", method = RequestMethod.GET)
public void loginSuccess() {
}
@RequestMapping("/exception.do")
public String invokeException(@RequestParam("id") String id ) throws Exception {
sampleService.invokeMethodAException();
return null;
}
}
댓글 없음:
댓글 쓰기