KoreaIt Academy/Spring Boot

[Spring Boot] Front-Controller 패턴 , Controller와 View(값을 뿌리는 방법), 타임리프(thymeleaf) 라이브러리 사용법

hongeeii 2021. 10. 8.
728x90
반응형

Front-Controller 패턴

 



1(①). 
사용자의 Request는 Front-Controller인 DispatcherServlet을 통해 처리합니다.

2(②, ③).
HandlerMapping은 Request의 처리를 담당하는 컨트롤러를 찾기 위해서 존재합니다.
여러 객체 중 @RequestMapping 어노테이션이 적용된 것을 기준으로 판단하며,
적절한 컨트롤러가 찾아졌다면 HandlerAdapter를 이용해서 해당 컨트롤러를 동작시킵니다.

3(④, ⑤).
Controller는 Request를 처리하는 비지니스 로직을 작성하며, View에 전달해야 하는
데이터는 주로 Model객체에 담아서 전달합니다.

이에 대한 처리는 ViewResolver를 이용하게 됩니다.

4(⑤). 
ViewResolver는 Controller가 리턴한 결과를 어떤 View에서 처리하는 것이 좋을 지 해석하는 역할입니다.
//ex) .html을 자동으로 붙여줍니다.


5(⑥, ⑦).
View는 실제 응답을 보내야하는 데이터를 HTML 등을 이용해서 생성하는 역할을 합니다.

6(⑧).
만들어진 응답은 DispatcherServlet을 통해서 전송됩니다.


*특징
- HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 기능 구현
- 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능
- GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능
- 상속/인터페이스 방식 대신 어노테이션만으로도 설정 가능
-------------------------------------------------------------------------------------------------------------

 

Controller

 

View에 값을 뿌려주는 방법

  • <html lang="en" xmlns:th="http://www.thymeleaf.org"> : 타임리프라이브러리 설정 (th: xx 로 사용) 
  • 위의 컨트롤러에서 @modelAttribute("vo")에서 받아온 값을 이용
  • ${vo.getName} 이렇게 사용하는 것이 원칙이지만, name만 사용하고 싶을 경우,
  • 상위 태그에 th:object = ${vo}로 붙여주고, 상속되었다는 의미로 *{name} 이렇게 사용
728x90
반응형

추천 글