실전 개발자를 위한 Spring Framework Day9
@Controller
1. DispatcherServlet
DispatcherServlet
- 웹 어플리케이션 최전방에서 사용자 요청 접수
- URL을 기준으로 요청을 처리할 Controller 탐색
-
Controller 호출 및 실행
- 사용 Annotation: @Controller, @RequestMapping, @Autowired
@RequestMapping
@Controller
@RequestMapping("/path1") //Class Level Mapping
public class exampleController{
@RequestMapping("/path2") //Method Level Mapping
public String exampleMethod(){
return "pageName" // /path1/path2/pageName.jsp로 이동
}
}
@RequestMapping :: @PathVariable
@Controller
@RequestMapping("/path1")
plblic class exampleController{
@RequestMapping("/{var}") //url을 파라미터로 입력 받음
public String exampleMethod(@PathVariable String var){
//요청 url: /path1/test
return var // /path1/test.jsp로 이동
}
}
2. ModelAndView를 사용한 모델/뷰 처리
- 응답으로 View(JSP)와 Model(Domain Object, VO)을 함께 처리할 때 사용
- 서비스로부터 받아온 데이터를 뷰로 전달해주는 역할
@Controller
plblic class exampleController{
@RequestMapping("/exampleMethod")
public ModelAndView exampleMethod(){
ModelAndView view = new ModelAndView();
view.setViewName("path1/pageName"); //jsp 경로
view.addObject("key","value"); // 데이터 전달
return view; /path1/pageName.jsp로 이동
}
}
리다이렉트(포워드) 처리
- 컨트롤러에서 클라이너트의 요청을 처리한 후 다른 페이지로 리다이렉트 하고 싶을 때
return "redirect:/path1/pageName" // /path1/pageName으로 redirect
return "forword:/path1/pageName" // /path1/pageName으로 forword