[java] JSF MVC 프레임 워크에서 MVC는 어떤 구성 요소입니까?

JSF MVC 프레임 워크에서 Model, View 및 Controller는 누구입니까?



답변

이것은 관점 (의도 한 말장난)에 따라 다릅니다.

큰 아키텍처 그림에서 자신의 JSF 코드는 V입니다 .

M- 비즈니스 도메인 / 서비스 계층 (예 : EJB / JPA / DAO)
V -JSF 코드
C -FacesServlet

개발자 그림에서 아키텍처 V 는 차례로 다음과 같이 나눌 수 있습니다.

M- 엔티티
V -Facelets / JSP 페이지
C- 관리 Bean

작은 클라이언트 그림에서 개발자 V 는 차례로 다음과 같이 나눌 수 있습니다.

M -JSF 컴포넌트 트리
V- 렌더링 된 HTML 출력
C- 클라이언트 (웹 브라우저)

아직 작은 JavaScript 그림에서 클라이언트 V 는 다음과 같이 나눌 수 있습니다.

M -HTML DOM 트리
V- 시각적 프리젠 테이션
C- 이벤트 리스너 기능 (최종 사용자 상호 작용 및 Ajax)

그래서 기본적으로 M (M (M (MVC) C) C) C;)

일부 스타터와 심지어 매우 기본적인 튜토리얼은 관리 빈에서 엔티티의 속성을 혼합 / 복사 / 평평하게 만들어 컨트롤러를 효과적으로 모델로 만듭니다. 말할 필요도없이 이것은 형편없는 디자인입니다 (즉, 깨끗한 MVC 디자인이 아닙니다).

다음 답변의 코드 조각은 올바른 MVC 접근 방식을 보여줍니다.

이 책에서는 자바 EE 8 JSF에 대한 확실한 가이드 8 장 “백업 콩”에, 페이지 276, 벤 다이어그램 아래는 JSF 개발과 관련된 컨텍스트 내에서 MVC 패러다임의 백업 빈의 위치를 설명하기 위해 사용된다 . 저작권 면책 조항 : 책은 내가 쓰고 그림은 내가 만들었습니다.

여기에 이미지 설명 입력


답변

M odel은 당신의ManagedBean

V iew는 jsp, XHTML(여기에서 다양한 견해를 수용 할 수 있습니다)

관리자FacesServlet

업데이트,이 사진이 더 많은 도움이되기를 바랍니다.

여기에 이미지 설명 입력


답변

faces 서블릿은 faces 수명주기를 관리하므로 각 수명주기 단계에서 호출 될 수있는 자체 코드와 결합 된 컨트롤러입니다.

http://www.java-samples.com/images/jsf-lifecycle.gif


답변

Java Server Faces는 MVC 구성 요소가 다음과 같은 MVC 웹 프레임 워크입니다.

  1. 모델 -데이터와 각 getter 및 setter를 보유하는 속성이있는 @ManagedBean으로 주석이 달린 관리 Bean 클래스입니다. 관리 빈 클래스는 또한 비즈니스 로직을 포함 할 수 있으며 요청, 세션, 애플리케이션과 같은 다른 범위를 가질 수있는 백킹 빈이라고도합니다.

  2. 보기 -클라이언트에 표시되는 사용자 인터페이스, 즉 .xhtml 파일. 관리되는 Bean에서 데이터를 가져오고 응답으로 렌더링됩니다.

  3. 컨트롤러 -javax.servlet.webapp.FacesServlet은 기본적으로 서블릿 인 중앙 집중식 컨트롤러 클래스입니다. JSF에 대한 모든 요청은 먼저 FacesServlet 컨트롤러로 이동합니다. 자체 컨트롤러 클래스를 작성하는 JSP와는 달리 JSF에서 컨트롤러 서블릿은 프레임 워크의 고정 된 부분이며 작성하지 않습니다.

MVC 흐름

여기에 이미지 설명 입력


답변