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 :