¿Qué componentes son MVC en el marco JSF MVC?

En el marco JSF MVC ¿quién es el Modelo, la Vista y el Controlador?

Esto depende del punto de vista (juego de palabras intencionado).

En la gran imagen arquitectónica, su propio código JSF es el V :

M – Capa de servicio / dominio empresarial (por ejemplo, EJB / JPA / DAO)
V – Su código JSF
C – FacesServlet

En la imagen del desarrollador, la architecture V es a su vez divisible de la siguiente manera:

M – Entidad
V – Facelets / página JSP
C – Bean administrado

En la imagen más pequeña del cliente, el desarrollador V es a su vez divisible de la siguiente manera:

Árbol de componentes M – JSF
V – Salida HTML procesada
C – Cliente (webbrowser)

En la imagen de JavaScript aún más pequeña, el cliente V es a su vez divisible de la siguiente manera:

M – árbol DOM HTML
V – Presentación visual
C – Funciones de escucha de eventos (interacción del usuario final y Ajax)

Entonces, es básicamente una M (M (M (MVC) C) C) C;)

Tenga en cuenta que algunos iniciadores e incluso algunos -muy básicos- tutoriales se mezclan / copian / aplanan las propiedades de la entidad en el bean administrado, lo que efectivamente haría que el controlador sea un modelo. Huelga decir que este es un diseño pobre (es decir, no es un diseño MVC limpio).

Los fragmentos de código en las siguientes respuestas ilustran el enfoque correcto de MVC:

  • Controlador JSF, Servicio y DAO
  • Creación de páginas de detalles maestros para las entidades, cómo vincularlas y qué ámbito de bean elegir
  • Pasar un bean Pojo administrado JSF2 a EJB o poner lo que se requiere en un objeto de transferencia
  • El filtro no inicializa EntityManager
  • javax.persistence.TransactionRequiredException en una pequeña aplicación facelet

M odel sería su ManagedBean

La vista sería jsp , XHTML (así puedes acomodar varios puntos de vista aquí)

C ontroller será FacesServlet

Actualización, espero que esta imagen ayude más

enter image description here

El servlet de caras administra el ciclo de vida de las caras, por lo que en ese sentido es el controlador combinado con su propio código el que puede recibir llamadas durante cada fase del ciclo de vida

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