4. MVC 프레임워크 만들기[Model 추가]

이건회·2022년 7월 2일
0

springmvc

목록 보기
15/29

  • 이제 서블릿에 대한 종속성을 제거할 것이다.
  • 요청 파라미터 정보는 MAP으로 대신 넘기면 컨트롤러가 서블릿 기술을 몰라도 동작시킬 수 있다.
  • request 객체에 데이터를 담아 Model로 사용하는 대신에 Model 객체를 만들어 반환하도록 할 것이다.

  • 또 view 이름의 중복을 제거할 것이다.
  • 컨트롤러는 뷰의 논리이름을 반환하고, 실제 물리 위치의 이름음 프론트 컨트롤러에서 처리하도록 할 것이다. 복잡한 것은 프론트 컨트롤러에서 처리하도록 하는 것

  • v3에서는 프론트 컨트롤러 호출 시 View 뿐 아닌 ModelView를 반환할 것이다.
  • ModelView에서는 논리 이름을 반환했으므로 ViewResolver에서 이를 물리 이름으로 바꿔 MyView를 반환하고 프론트 컨트롤러에서 render를 호출할 것이다.

  • 서블릿 종속성 제거를 위해 모델을 직접 만들고 View 이름까지 전달하도록 하겠다.

  • modelView를 생성해주고 생성자 만든 후 viewName, model 변수를 만들어 getter setter를 생성해준다.
  • model 변수에 원하는 값을 넣어 나중에 꺼내 쓸 수 있도록 할 것이다.

  • V3 컨트롤러를 만드는데 기존 v2,v1과 달리 HttpServletRequest request, HttpServletResponse response 등이 없다. 서블릿 의존성을 낮춘다.

  • 회원 가입 컨트롤러를 생성한다. ModelView를 반환하되 경로는 논리적 경로를 넣는다.

  • 회원 저장 컨트롤러를 생성한다. paraMap에 요청 파라미터 정보를 모두 넣어 보내주고, 나중에 age 등등 정보를 꺼내 쓴다.

  • ModelView를 반환할 때 member 정보를 넣어 반환해준다.

  • 마찬가지로 회원 정보 컨트롤러도 members 객체를 담은 ModelView를 반환한다.

  • 이제 프론트 컨트롤러를 만들 것이다. 기본 틀은 v2에서 복사해온다

  • 이제 paramap을 넘겨주는 방식으로 로직을 짤 것이다. 먼저 paramMap 변수를 만들고 request 안dml 모든 파라미터를 다 꺼내온다.
  • 반복문을 돌며 paramName 키로 밸류를 꺼내오며 paramMap 변수 안에 넣어준다.

  • paramMap 안의 내용을 process 로컨트롤러 호출시켜 모델뷰로 반환한다.

  • 반복문을 돌리는 부분은 메소드화 한다.

  • 이제 ModelView에서 뷰네임을 viewName 변수에 담아 Myview에서 물리적 경로로 변환할 수 있도록 넣어주고 이를 view 변수에 넣어준다.
  • 이후 view를 통해 render를 호출할 수 있다.

  • 물리 이름을 만드는 로직은 viewResolver로 메소드화 한다.

  • 이제 Model을 render에 같이 넘겨줘야 한다.

  • render에 mv.getModel()로 넘겨주어야 하므로 이 메소드를 생성해줄 것이다.

  • 모델의 데이터를 forEach로 전부 꺼내서 request에 키,밸류로 값을 전부 담아놓는다.
  • 그 다음 같은 로직으로 forward 해준다.

  • 모델의 데이터를 꺼내 담는 로직은 메소드화 해준다.



  • 서버에서 제대로 돌아가는지 확인
profile
하마드

0개의 댓글