Câu trả lời:
Điều này phụ thuộc vào quan điểm (ý định chơi chữ).
Trong bức tranh kiến trúc lớn, mã JSF của riêng bạn là V :
M - Miền doanh nghiệp / Lớp dịch vụ (ví dụ: EJB / JPA / DAO)
V - Mã JSF của bạn
C - FacesServlet
Trong hình của nhà phát triển, kiến trúc V lần lượt được phân chia như dưới đây:
M - Thực thể
V - Khuôn mặt / Trang JSP
C - Đậu được quản lý
Trong hình ảnh khách hàng nhỏ hơn, nhà phát triển V lần lượt có thể phân chia như sau:
M - Cây thành phần JSF
V - Kết xuất HTML đầu ra
C - Máy khách (trình duyệt web)
Trong bức tranh JavaScript nhỏ hơn, máy khách V lần lượt có thể phân chia như dưới đây:
M - Cây DOM HTML
V - Bản trình bày trực quan
C - Chức năng lắng nghe sự kiện (tương tác người dùng cuối và Ajax)
Vì vậy, về cơ bản nó là M (M (M (M (MVC) C) C) C;)
Lưu ý rằng một số phần khởi động và thậm chí một số hướng dẫn — rất cơ bản — trộn / sao chép / làm phẳng các thuộc tính của thực thể trong bean được quản lý, điều này sẽ làm cho bộ điều khiển trở thành một mô hình hiệu quả. Không cần phải nói rằng đây là thiết kế kém (tức là không phải là một thiết kế MVC sạch sẽ).
Các đoạn mã trong các câu trả lời sau minh họa cách tiếp cận MVC phù hợp:
Trong cuốn sách Hướng dẫn dứt khoát về JSF trong Java EE 8 , ở chương 8 "Đậu sao lưu", trang 276, sơ đồ Venn dưới đây được sử dụng để minh họa vị trí của đậu hỗ trợ trong mô hình MVC trong ngữ cảnh liên quan đến nhà phát triển JSF . Tuyên bố từ chối trách nhiệm về bản quyền: sách do tôi viết và hình ảnh do tôi tạo ra.
<h:inputText value="#{register.username}">
thay vì <h:inputText value="#{register.user.name}">
.
M odel sẽ là của bạnManagedBean
V iew sẽ là jsp
, XHTML
(bạn có thể cung cấp các góc nhìn khác nhau ở đây)
C ontroller sẽ làFacesServlet
Cập nhật, hy vọng hình ảnh này sẽ giúp nhiều hơn
FacesServlet
là một bộ điều khiển hơn tôi không thể mở rộng nó. Tôi không thể có bộ điều khiển của riêng mình ... Tôi đồng ý với Shervin rằng Managed Beans là Bộ điều khiển. Shervin, làm thế nào về việc đăng câu trả lời thay thế của riêng bạn?
FacesServlet
đang kiểm soát.
Các mặt servlet quản lý vòng đời của các mặt vì vậy theo nghĩa đó, nó là bộ điều khiển kết hợp với mã của riêng bạn có thể được gọi trong mỗi giai đoạn vòng đời
Java Server Faces là một khung công tác web MVC trong đó các thành phần MVC như sau,
Mô hình - Nó là lớp bean được quản lý được chú thích bằng @ManagedBean, lớp này có các thuộc tính để lưu giữ dữ liệu và các getters và setters tương ứng. Lớp bean được quản lý cũng có thể chứa logic nghiệp vụ, chúng còn được gọi là lớp đậu hỗ trợ có thể có các phạm vi khác nhau như yêu cầu, phiên, ứng dụng.
Xem - Giao diện người dùng được hiển thị cho máy khách, tức là các tệp .xhtml. Nó lấy dữ liệu từ các bean được quản lý và nó được hiển thị dưới dạng phản hồi.
Bộ điều khiển - javax.servlet.webapp.FacesServlet là lớp bộ điều khiển tập trung về cơ bản là một servlet. Bất kỳ yêu cầu nào đến JSF trước tiên sẽ được chuyển đến bộ điều khiển FacesServlet. Không giống như JSP mà chúng ta viết lớp bộ điều khiển của riêng mình, trong JSF, bộ điều khiển servlet là một phần cố định của khuôn khổ và chúng ta không viết nó.
Dòng chảy MVC-