tutorial mvc example ejemplo spring-mvc jsf design-patterns model-view-controller

spring mvc - example - Diferencia entre Request MVC y Component MVC



spring mvc example (1)

He oído que JSF está implementando MVC basado en componentes y Spring MVC está implementando el MVC basado en solicitudes. Me gustaría saber cuál es la diferencia técnica exacta entre estos dos tipos.


En MVC basado en solicitud (acción), un único servlet de controlador frontal delegará en modelos de acción basados ​​en URL / params de solicitud. HttpServletRequest directamente con los HttpServletRequest Raw HttpServletRequest y HttpServletResponse en el modelo de acción. Debe escribir el código usted mismo para recopilar, convertir y validar los parámetros de solicitud y, si es necesario, actualizar los valores del modelo antes de que pueda invocar la acción comercial.

En el MVC basado en componentes, un solo controlador frontal reunirá, convertirá y validará los parámetros de solicitud y actualizará los valores del modelo en sí mismo para que usted solo tenga que preocuparse por la acción del negocio. La forma en que el controlador necesita recopilar / convertir / validar / actualizar los valores se define en un solo lugar, la vista. Como eso no es posible con HTML "simple", se requiere un lenguaje de marcado específico para lograr el objetivo. En el caso de JSF 2.0, eso está basado en XML (XHTML). Utiliza XML para definir los componentes de la interfaz de usuario que a su vez contienen información sobre cómo el controlador debe reunir / convertir / validar / actualizar los valores del modelo y generar / representar la representación HTML necesaria.

Las ventajas y desventajas deben ser claras en este punto: con un marco de MVC basado en solicitudes, debe escribir usted mismo más código (repetitivo) para lograr el objetivo. Sin embargo, terminas con un control mucho más detallado sobre el proceso y la salida de HTML / CSS / JS. Con un marco MVC basado en componentes, no necesita escribir mucho código usted mismo. Sin embargo, tiene un control menos detallado sobre el proceso y la salida de HTML / CSS / JS. Por lo tanto, si desea hacer las cosas de forma un poco diferente de lo que describe el estándar y / o la implementación, perderá mucho más tiempo en un marco MVC basado en componentes cuando no esté bien informado sobre sus pormenores. .

Manfred Riem (miembro del equipo JSF 2.x y ex líder de especificaciones Java EE 8 MVC 1.0) lo ha delineado muy bien durante su discurso sobre MVC 1.0 (JSR 371) en Devoxx 14 :

Ver también: