¿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).
En el panorama arquitectónico general, su propio código JSF es el V :
M - Dominio empresarial/capa de servicio (por ejemplo, EJB/JPA/DAO)
V - Su código JSF
C - FacesServlet
En la imagen del desarrollador, la V arquitectónica se puede dividir como se muestra a continuación:
M - Entidad
V - Facelets/página JSP
C - Bean administrado
En la imagen más pequeña del cliente, el desarrollador V se puede dividir como se muestra a continuación:
M - Árbol de componentes JSF
V - Salida HTML renderizada
C - Cliente (navegador web)
En la imagen de JavaScript aún más pequeña, el cliente V se puede dividir como se muestra a continuación:
M - Árbol HTML DOM
V - Presentación visual
C - Funciones de escucha de eventos (interacción del usuario final y Ajax)
Entonces es básicamente un M(M(M(MVC)C)C)C;)
Tenga en cuenta que algunos principiantes e incluso algunos tutoriales —muy básicos— mezclan/copian/aplanan las propiedades de la entidad en el bean administrado, lo que efectivamente convertiría al controlador en un modelo. No hace falta decir que se trata de un diseño deficiente (es decir, no es un diseño MVC limpio).
Los fragmentos de código de las siguientes respuestas ilustran el enfoque MVC correcto:
- Controlador JSF, Servicio y DAO
- Crear páginas maestras y de detalles para entidades, cómo vincularlas y qué alcance de bean elegir
- Pasar un bean pojo administrado JSF2 a EJB o colocar lo necesario en un objeto de transferencia
- El filtro no inicializa EntityManager
- javax.persistence.TransactionRequiredException en una aplicación facelet pequeña
En los libros The Definitive Guide to JSF in Java EE 8 , capítulo 8 "Backing beans", página 276, y The Definitive Guide to Jakarta Faces in Jakarta EE 10 , capítulo 8 "Backing Beans", página 288, el siguiente diagrama de Venn es se utiliza para ilustrar la posición del bean de respaldo en el paradigma MVC dentro del contexto relevante para el desarrollador JSF. Descargo de responsabilidad de derechos de autor: los libros antes mencionados están escritos por mí y la imagen fue creada por mí.
El modelo sería tuManagedBean
La vista sería (bueno jsp
, XHTML
puedes acomodar varias vistas aquí)
El controlador seráFacesServlet
Actualización, espero que esta imagen ayude más.